Страница 1 из 1

Форма и код в разных файлах

СообщениеДобавлено: 30.05.2008 00:11:15
Gorjatschew
Здравствуйте!
Рассказали мне, что в Delphi было реально сделать отдельно код программы и отдельно форму, причём можно было и скомпилировать разными компиляторами.
Подскажите, как это далается (или укажите, где об этом получше написано).
Извините, если как-то коряво вопрос сформулировал

Re: Форма и код в разных файлах

СообщениеДобавлено: 30.05.2008 20:21:59
Attid
Gorjatschew писал(а):коряво вопрос сформулировал

очень коряво,

лучше раскажи что у тя есть и что надо получить.

разными компиляторами.

и насколько разными ? =) Си и Паскаль не получится =)

Добавлено спустя 19 секунд:
и главное зачем оно тебе надо.

Re: Форма и код в разных файлах

СообщениеДобавлено: 31.05.2008 09:48:57
Timid
м.б. вопрос был о dll ?

Re: Форма и код в разных файлах

СообщениеДобавлено: 31.05.2008 21:22:01
Gorjatschew
Постараюсь исправится.
Имелось в виду, что код с формой и код никак не связаны --- то есть в одном модуле описано всё, что связано с формой, есть заготовки под обработчики событий, но сами события описаны в другом модуле.
Необходимо для того, чтобы один человек разрабатывал тнтерфейс, а другой --- под него писал код, причём, так как программа стандартная для разных нужд, удобнее было бы просто переписывать строчки в коде, чем всю программу целиком.
С разельной компиляцией --- это я погоричился.
Программа компилироваться будет целиком.

Re: Форма и код в разных файлах

СообщениеДобавлено: 31.05.2008 22:03:59
alexs
используй инклуды

Re: Форма и код в разных файлах

СообщениеДобавлено: 31.05.2008 22:28:07
Gorjatschew
alexs писал(а):используй инклуды

А можно об этом по подробнее?

Re: Форма и код в разных файлах

СообщениеДобавлено: 31.05.2008 22:31:50
alexs
директива компилятора {$I имя_файла} - почитай в документации
смысл - можеш во включаемые файлы вынести код, который меняется от проекта к проекту. ТОлько не забывай их синхронизировать вовремя.
И условная компияция тебе в помощь :-)

Re: Форма и код в разных файлах

СообщениеДобавлено: 02.06.2008 09:19:31
Timid
2A, Нет, для начинающего этот способ некорректен.

2Gor, Используй модуль, в котором создай экземпляр класса, в котором разработай всю необходимую функциональность.
Код: Выделить всё
type TMyClass=class(TComponent)
private
  ... какие-то массивы, переменные, внутренние процедуры
public
  constructor Create(AOwner:TComponent)
  destructor Destroy;
  ... другие методы и функции, например,
  procedure BuiltIndexOfMyCoolDatabase; // построение индекса по моей базе данных
end;

в разделе implementation опиши все функции и процедуры как заглушки, т.е. в теле только begin и end


Этот модуль отдай на разработку "кодеру"

В заготовке дизайна основной формы подключи этот модуль.
Добавь объект в private раздел формы, например, FMyClass:TMyClass;
В обработчике FormCreate инициализируй его
Код: Выделить всё
procedure TForm1.Create
begin
  FMyClass:=TMyClass.Create(Self);
end;

В обработчике FormDestroy, уничтожь
Код: Выделить всё
procedure TForm1.Destroy;
begin
  FreeAndNil(FMyClass);
end;

Эту заготовку отдай дизайнеру.

Везде где необходимо дизайнер будет писать что-нибудь в духе
FMyClass.SaveDataFile
а соответствующая процедура уже будет описываться кодером в своем модуле.

И вообще, подробнее о создании и использовании модулей классов можно почитать в любой книжке по Delphi.