Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.13;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.043 c
2-1176980014
Gentos
2007-04-19 14:53
2007.05.13
TLOBlocator - > TPersistent


8-1156577755
Sergey_FV
2006-08-26 11:35
2007.05.13
Битрэйт и размер видео-файла


8-1154876297
aleksei_c
2006-08-06 18:58
2007.05.13
Захват картинки с окна перекрытого другим


3-1172238690
Tor
2007-02-23 16:51
2007.05.13
Открытая транзакция


15-1176697979
pavel_guzhanov
2007-04-16 08:32
2007.05.13
Непонятный глюк с DVD-RW





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский