Вниз
Скачать: 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.46 MB
Время: 0.012 c
3-36927
PrettyFly
2002-12-17 15:49
2003.01.13
Работа механизма транзакций в InterBase


4-37457
GROL
2002-11-25 12:23
2003.01.13
Как определить экранные координаты Menu?


14-37337
AL2002
2002-12-20 10:15
2003.01.13
Какая прога...


3-36985
Pool
2002-12-19 07:47
2003.01.13
index


3-36942
Ken Keray
2002-12-17 09:54
2003.01.13
Вопрос про кодировку




   Наверх