Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как проинициализировать указатель... [D6, Win2k]


Андрусь ©   (2002-08-16 13:18:00) 

Привет всем!Тут такой вопросик:есть две переменные 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;

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


Андрусь   (2002-08-16 15:29:00) [1]

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


DiamondShark   (2002-08-16 14:13:00) [2]


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


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

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

var1 := var2


Андрусь   (2002-08-16 13:59:00) [3]

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

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


Игорь Шевченко   (2002-08-16 13:49:00) [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:44:00) [5]

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


Андрусь   (2002-08-16 13:38:00) [6]

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


Skier   (2002-08-16 13:20:00) [7]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо