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

Вниз

Как создать указатель на форму   Найти похожие ветки 

 
LinOS ©   (2003-10-09 10:31) [0]

Подскажите, как создать указатель на форму.
Создаю форму и потом по указателю надо ее убить, что бы не привязываться к конкретному названию.


 
Radionov Alexey ©   (2003-10-09 10:33) [1]

Когда ты обращаешься к форме, ты всегда имеешь дело с указателем.

А создать еще один указатель:

FormPointer : TForm;


 
Семен Сорокин ©   (2003-10-09 10:35) [2]

что бы не привязываться к конкретному названию.
Form1 - указатель на форму TForm1 по умолчанию :))
var
_ptr: pointer;

_ptr := @(TForm1.Create(nil))


 
LinOS ©   (2003-10-09 10:35) [3]

Понятно, а я думал так нельзя. А то у меня ошибку вали и валит я уже не знаю на что и думать.
Если я сделаю так:
FormPointer := MyForm;
...
...
FormPointer.Free;
FormPointer := nil;

Так корректро писать?


 
Romkin ©   (2003-10-09 10:39) [4]

Корректно. Можно и FreeAndNil


 
Плохиш_   (2003-10-09 10:39) [5]

>LinOS © (09.10.03 10:35) [3]

Если компилятор не против, то корректно ;-)


 
Семен Сорокин ©   (2003-10-09 10:40) [6]

Семен Сорокин © (09.10.03 10:35) [2]
обшибся - без адреса:
_ptr := TForm1.Create(nil)
LinOS © (09.10.03 10:35) [3]
Так корректро писать?
FormPointer := MyForm;
...
...
TForm(FormPointer).Free;
FormPointer := nil;


 
LinOS ©   (2003-10-09 10:51) [7]


var
CurrForm: TForm;
..
..
procedure TMainForm.Image3Click(Sender: TObject);
begin
if CurrForm <> nil then
begin
CurrForm.Free;
CurrForm := nil;
end;
StaffForm := TStaffForm.Create(self);
CurrForm := StaffForm;
StaffForm.WorkPanel.Parent := MainForm.MainPanel;
Image3.Enabled := False;
Image4.Enabled := True;
end;

procedure TMainForm.Image4Click(Sender: TObject);
begin
if CurrForm <> nil then
begin
CurrForm.Free;
CurrForm := nil;
end;
ProffForm := TProffForm.Create(self);
CurrForm := ProffForm;
ProffForm.WorkPanel.Parent := MainForm.MainPanel;
Image3.Enabled := True;
Image4.Enabled := False;
end;

Нажимаю на Image 3 - показывает сод формы Staff
Нажимаю на Image 4 - показывает сод формы Proff
Нажимаю опять на Image 3 - Access Violation
Что не так?


 
Radionov Alexey ©   (2003-10-09 10:54) [8]

CurrForm где-то рожают? Если нет, то

var
CurrForm: TForm=Nil;


 
Anatoly Podgoretsky ©   (2003-10-09 11:09) [9]

Ошмбка где то в другом месте, но вот эти операции лишнии

if CurrForm <> nil then
begin
CurrForm.Free;
CurrForm := nil;
end;

достаточно CurrForm.Free;


 
:)   (2003-10-09 11:16) [10]

или FreeAndNil(CurrForm)


 
:)   (2003-10-09 11:17) [11]

а точнее

if Assigned(CurrForm) then
FreeAndNil(CurrForm)


 
LinOS ©   (2003-10-10 07:26) [12]

Дело в том, что я назначаю WorkPanel из ProffForm отображаться в MainForm.

ProffForm.WorkPanel.Parent := MainForm.MainPanel;

а затем я уничтожаю форму ProffForm, а WorkPanel лежит в MainForm. Думаю дело в этом.



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

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

Наверх




Память: 0.49 MB
Время: 0.015 c
1-74177
Slym
2003-10-10 08:06
2003.10.23
Как и откуда вытащить все имена процедур, функций и констант VBA


11-74101
Kladov
2003-02-09 07:48
2003.10.23
Странности ME


7-74502
ossa
2003-07-31 09:47
2003.10.23
Вопрос для знатоков, кто работал с RASAP?I


3-73979
victor
2003-10-01 12:27
2003.10.23
QReport


3-73988
dzh2000
2003-10-04 16:36
2003.10.23
Bug с отрицательными числами в Firebird 1.5