Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
ВнизКак проинициализировать указатель... Найти похожие ветки
← →
Андрусь (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 вся ветка
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c