Вниз
Скачать: CL | DM;

Как проинициализировать указатель...   Найти похожие ветки 

← →
Андрусь ©   (2002-08-16 13:18) [0]

Привет всем!Тут такой вопросик:есть две переменные var1 и var2 -указатели на объекты,например,TForm. Один указывает в нил,второй проинициализирован.Нужно передать var1 адрес,на который указывает var2,при условии,что как только мы проинициализировали var2 напрямую к var1 обратиться нельзя. Я делал так

procedure TForm1.Button1Click(Sender: TObject);
var var1,var2:TForm;p:pointer;
begin
var1:=nil;
p:=@var1;
var2:=TForm.Create(Application);
var2.Caption:="Privet";
TForm(p):=var2;
showMessage("var1.Caption = "+var1.Caption+"; var1.Caption = "+var2.Caption);
end;

Но не работает. Помогите,поясните как сделать чтобы заработало.
Зараннее всем благодарен.


← →
Skier ©   (2002-08-16 13:20) [1]

>Андрусь
p := var1; ?


← →
Андрусь ©   (2002-08-16 13:38) [2]

>Skier ©
Чего-то не понял вопроса.Попытайтесь вникнуть в задачу.


← →
Внук ©   (2002-08-16 13:44) [3]

(^TForm)(p)^:=var2;
Что-то вроде этого. В общем, p надо привести к типу указателя на форму, потом его разименовать и присвоить то, что нужно. Ведь фактически здесь получился указатель на указатель


← →
Игорь Шевченко ©   (2002-08-16 13:49) [4]

type
PCustomForm = ^TCustomForm;

var
var1, var2 : TForm;
FGlobalInstance : PCustomForm;

begin
var1:=nil;
FGlobalInstance:=@var1;
var2:=TForm.Create(Application);
var2.Caption:="Privet";
FGlobalInstance^:=var2;
showMessage("var1.Caption = "+var1.Caption+"; var1.Caption = "+var2.Caption);
end;



← →
Андрусь ©   (2002-08-16 13:59) [5]

Спасибо большое я тут сам попростее придумал - и работает

...
TForm(p^):=var2;
...


← →
DiamondShark ©   (2002-08-16 14:13) [6]


> Андрусь © (16.08.02 13:59)
> Спасибо большое я тут сам попростее придумал - и работает
>
> ...
> TForm(p^):=var2;


Конгениально!

А теперь найдите 10 отличий от

var1 := var2


← →
Андрусь ©   (2002-08-16 15:29) [7]

>DiamondShark ©
Повнимательнее читай изложенное выше:-}



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.009 c
3-84916
Виталий Панасенко
2002-08-06 17:45
2002.08.26
Как победить исключение


1-85059
Bart
2002-08-14 13:34
2002.08.26
Реестр в 2000


14-85257
Agent Smith
2002-07-31 19:49
2002.08.26
Athlon XP 1800 + Vulcan 6Cu - ЖАРА!!!


1-84969
Vicheslav
2002-08-15 15:51
2002.08.26
Ув. Мастера помогите с Excel !????


14-85166
cyborg
2002-07-29 20:17
2002.08.26
Просто интересно




   Наверх