Вниз
Скачать: 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.011 c
6-85153
Vas1
2002-06-13 10:58
2002.08.26
Информация о сетевом соединении


1-85126
dmtr
2002-08-15 11:16
2002.08.26
Динамическое переопределение


1-84958
Hawk2
2002-08-15 10:52
2002.08.26
Снова Excel, а точнее форматирование.


4-85296
MikeZ
2002-06-22 23:10
2002.08.26
Информация из *.lnk файла. (any Delphi)


1-84968
ABM
2002-08-15 15:20
2002.08.26
???




   Наверх