Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.07;
Скачать: CL | DM;

Вниз

Наивный вопрос о св-ве Tag   Найти похожие ветки 

 
Satrap ©   (2002-01-23 09:54) [0]

Рискуя навлечь на себя гнев профессионалов все же спрошу. В help-е прочел, что в свойстве Tag
можно располагать любые типы данных размером 4 байта. Пытаюсь поместить в Tag указатель, но
ничего не получается. Размещаю так

Tag:=LongInt(P); , где P:Pointer

Получаю указатель так

P:=@Tag;

После этого указатель указывает на все что угодно, кроме нужной переменной.
Чтоя делаю не так, подскажите, или может я не так понял help?


 
Виктор Щербаков ©   (2002-01-23 10:11) [1]

Tag := Integer(P);
P := Pointer(Tag);


 
Digitman ©   (2002-01-23 10:13) [2]

св-во Tag многих VCL-классов объявлено как Longint.
размерность типа Longint - 4 байта, размерность типа Pointer - тоже 4 байта. Поэтому для присвоения тэгу значения указательного типа достаточно сделать явное преобразование типа вот так :
var Ptr: Pointer;
..
Object.Tag := Longint(Ptr);

тем самым ты сообщаешь компилятору, что значение, хранящееся в переменной Ptr, ему следует рассматривать не как указатель, а как длинное целое (что вполне допустимо, т.к. размеры этих типов совпадают), и тем самым - подавить потенциальное сообщение компелятора о несоответствии типов в этом выражении


 
Satrap ©   (2002-01-23 11:30) [3]

Простите, погорячился, в следующий раз буду думать в 2 раза дольше. Или даже в три. Спасибо всем кто откликнулся.



Страницы: 1 вся ветка

Текущий архив: 2002.02.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
6-18940
Pal-nod
2001-11-18 03:45
2002.02.07
1) Установка/удаление IPX 2) Разблокировать панель управления


3-18724
Tadi
2002-01-08 15:22
2002.02.07
Здравствуйте Мастера! Помогите-- TIBQuery - update...... Update Failed?


3-18760
UnDISCOvery
2002-01-10 13:46
2002.02.07
Базы данных и графика в них !


3-18726
KMZ
2002-01-10 11:24
2002.02.07
Масиера подскажите плиз,отчего возникает ошибка типа Access violation


14-18959
Nest
2001-12-14 16:07
2002.02.07
[>Merlin] а почему в анкетах нет поиска по датам и как его осуществить?