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

Вниз

Указатели и структуры ?   Найти похожие ветки 

 
BelovV   (2002-12-29 17:37) [0]

Такой вот вопрос

есть две структуры

CMyList = record
Names: String;
ID: Integer;
end;

CMyProj = record
Types: String;
ProjID: Integer;
...
end;

var
MyList: ^CMyList;
MyProj: ^CMyProj;

Динамически стороится дерево
У каждого элемента есть св-во Data (Pointer)
В зависимости от определенных условий я "присваиваю" св-ву Data тот или иной тип рекорда.


А как в дальнейшем мне определить на какую структуру у меня ссылается указатель Node.Items.Data ?


 
MBo ©   (2002-12-29 17:40) [1]

проще всего (в даннном случае) сделать в записи поле, характериэующее тип записи


 
vuk ©   (2002-12-29 17:40) [2]

Можно информационное поле завести и в зависимости от его значения интерпретировать указатель должным образом. А можно сделать классы вместо записей и использовать оператор is.


 
BelovV   (2002-12-29 17:57) [3]

Ок.
А если я присваиваю значение
TreeView1.Items.Items[i].Data:=@MyList;
т.е. в Data я храню адрес моей переннной

в дальнейшем я проверяю
if TreeView1.Selected.Data = @MyList then
begin
???? А как теперь мне обратиться к полям моей структуры
end;


 
MBo ©   (2002-12-29 18:11) [4]

>BelovV
CMyList(TreeView1.Selected.Data )^.Names.....
Однако это нехорошо. Обрати внимание на последнее предложение vuk-а - это предоставит неплохой контроль над типами переменных, раз ты сам об этом не позаботился


 
BelovV   (2002-12-29 18:27) [5]

Спасибо.
Скорее всего я и последую совету vuk-a.
Только правда придется переписать половину программы. :-((



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
4-37441
Urn
2002-11-24 19:49
2003.01.13
Сворачивание окон


1-37077
Alexsandr (GEG)
2003-01-03 13:17
2003.01.13
StringGrid убрать выделение ячейки


3-36925
alexey1917
2002-12-17 08:06
2003.01.13
commit автоматический


14-37355
Свой
2002-12-20 11:44
2003.01.13
Создание ОС


14-37305
sancho
2002-12-22 10:48
2003.01.13
Картриджи принтера