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

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Аватара пользователя
SergeyS
Сообщения: 196
Зарегистрирован: 21 ноя 2006, 17:12
Откуда: Хакасия, Абакан
Контактная информация:

&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 файлы :)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

SergeyS, спасибо большое!
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить