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

Re: Написание однотипных программ

Добавлено: 18 дек 2006, 07:50
SergeyS
&quot писал(а):Еще один вопрос на ту же тему.
Есть у меня куча юнитов, в которых лежат фреймы - TFrame1, TFrame2 и т.д. Тэг каждого фрейма соответствует его номеру (т.е. у TFrame1 tag=1 и т.д.).
Как сделать так, чтобы на форму загружался фрейм, тэг которого (или имя - не принципиально) введет пользователь?
Примерная схема действий:

Код: Выделить всё

unit Unit1
...
interface
...
type
  TFrame1 = class(TFrame)
  ...
  end;

implementation

...

initialization
  RegisterClass(TFrame1);
end.

// так повторяем для каждого unit и фрейма
// потом делаем так:

...
type
  TFrameClass = class of TFrame;

var
  FrameClass: TFrameClass;
  Frame: TFrame;
  Index: Integer;
begin
  Index := 1;
  FrameClass := TFrameClass(GetClass('TFrame' + IntToStr(Index)));
  Frame := FrameClass.Create(Self);
  Frame.Parent := Self;
  ...
end;
Впрочем вместо делфового механизма регистрации классов можно завести собственный менеджер классов, но суть будет таже (хотя при использовании стандартного механизма, можно будет эти фреймы вручную записывать в dfm файлы :)

Re: Написание однотипных программ

Добавлено: 18 дек 2006, 10:05
Хыиуду
SergeyS, спасибо большое!