Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.01 c
14-85218
Stain
2002-07-30 19:55
2002.08.26
NT DDK


1-84970
K
2002-08-15 15:44
2002.08.26
Excel, Delphi97 и Delphi2000


14-85177
Schummi
2002-07-30 08:47
2002.08.26
про деньги...


1-85073
Stas Ant
2002-08-14 07:00
2002.08.26
Виртуальный винт


4-85305
Doctor Deejay
2002-06-21 17:06
2002.08.26
Перехват клавиш в ДОС-окне или консоли (FAR)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский