Главная страница
    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.006 c
3-84859
BAY
2002-08-05 07:31
2002.08.26
Что же использовать вместо FLOAT?


8-85130
Rammst
2002-04-21 07:22
2002.08.26
Где хранятся?


1-85074
pasha_golub
2002-08-14 11:10
2002.08.26
Создание экземпляра TTreeNodes или способ хранения данных


4-85301
tv
2002-06-20 14:48
2002.08.26
Перерисовка на окнах рисунков, созданных объектом Canvas


3-84907
AlexanderK
2002-08-06 16:21
2002.08.26
Excel





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский