Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.014 c
3-36975
Fuinadan
2002-12-18 18:11
2003.01.13
PostGluk


8-37228
Sergey V. Shadrin
2002-09-24 09:13
2003.01.13
разрешение экрана


6-37261
Serguar
2002-11-11 13:31
2003.01.13
TServerSocket / ActiveConnections


4-37460
Алёшка1900
2002-11-25 22:01
2003.01.13
GetAsyncKeyState(VK_LBUTTON)


3-36964
Сергей
2002-12-18 11:28
2003.01.13
Dataset




   Наверх