Использую формы, а на них натягиваю фреймы (так чтоб не открывать новое окно а всё делать в одном).
Фрейм натягиваю на окно вот так:
- Код: Выделить всё
Form02.Caption:='Заголовок окна';
fr01:=Tds.Create(self);
fr01.Align:=alClient;
fr01.Parent:=self;
Открытие следующего фрейма на эту же форму будет выглядеть допустим так:
- Код: Выделить всё
FreeAndNil(Form02.fr01); // Уничтожаем фрейм
Form02.FrameAktiv2(Sender); // Активируем фрейм2
То есть сперва уничтожаю текущий фрейм на Form02, а потом запускаю процедуру из модуля той же Form02 для активации второго фрейма. Всё бы ничего но при отказе от модальности необходимо (для других функций) завести другое окно (ещё одну не модальную форму) и на неё аналогичным образом натягивать фреймы, однако среди них есть общие (тока надписи меняются)... и тут у меня возникает проблема (не могу придумать реализацию):
как общему для двух форм фрейму, "объяснить" на какой форме он должен себя уничтожить?!! Ведь если окна не модальные они могут быть открыты оба одновременно и тогда прямое обращение к форме типа:
- Код: Выделить всё
FreeAndNil(Form02.fr01);
не пойдёт, точнее обращение должно быть либо к той либо к другой форме, но по какому признаку ставить условие?