Главная страница
    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.007 c
1-85054
TCrash
2002-08-14 13:00
2002.08.26
Виртуальный файл


6-85141
Makss
2002-06-15 15:52
2002.08.26
WinNT


3-84862
LexaTyukha
2002-08-05 10:41
2002.08.26
Упаковка dbf-таблиц не используя BDE (dbiPackTable не подходит)


3-84929
Иван
2002-08-06 08:36
2002.08.26
Пароли пользователей


1-85061
kserg@ukr.net
2002-08-14 13:57
2002.08.26
ошибка QReport-a - что означает?





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