Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.05.13;
Скачать: CL | DM;

Вниз

Игра с формами   Найти похожие ветки 

 
Leonid Troyanovsky ©   (2007-04-25 15:41) [57]


> Kostafey ©   (25.04.07 03:30) [56]

> Все же получается удобнее иметь для немодальных форм глобальные
> указатели,
> будь то, поля главной формы или просто переменные в случае,
>  если каждое окно
> должно быть только в 1 экземпляре.
> Конечно, когда требуется иметь несколько экземпляров окна,
>  тут другого пути нет.
> Но если нужно работать одним экземпляром, то отсутсвие указателя
> все только усложнит.


Во-первых, корректное хранение ссылки в поле формы
(никаких переменных!) не так уж и просто.
Вот пример хранения ссылки на TForm2, которая должна
существовать лишь в одном экземпляре:

type
 TForm1 = class(TForm)
   Button1: TButton;
   Button2: TButton;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
   FForm2: TForm;
 public
   { Public declarations }
   procedure Notification(AComponent: TComponent; Operation: TOperation); override;
 end;

implementation

{$R *.dfm}

uses
 unit2;   {у TForm2 сделаем в обработчике OnClose: Action:= caFree}

procedure TForm1.Notification;
begin
 inherited;
 if AComponent = FForm2 then
   if Operation = opRemove then
     FForm2 := nil;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 if not Assigned(FForm2) then
   begin
     FForm2 := TForm2.Create(nil);
     FreeNotification(FForm2);
   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 if Assigned(FForm2) then
   TForm2(FForm2).Show;
end;


Так что, использование Screen.Forms может быть и проще :)

--
Regards, LVT.



Страницы: 1 2 вся ветка

Текущий архив: 2007.05.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.041 c
8-1156246891
Zeleniy
2006-08-22 15:41
2007.05.13
удаление содержимого звукового файла


2-1176964506
inoc
2007-04-19 10:35
2007.05.13
Процедура балансировки дерева


2-1177074264
_Anton_
2007-04-20 17:04
2007.05.13
обнуление поля с изображением


15-1176409622
vasIZmax
2007-04-13 00:27
2007.05.13
Не о... программировании


15-1176690886
Slider007
2007-04-16 06:34
2007.05.13
С днем рождения ! 15 апреля