![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Указатели [D5]
Random © (2002-03-30 18:30:00)Учусь работать с указателями. Пожалуйста, подскажите, как создать переменную, которая, в зависимости от обстоятельств указывала бы на запись или массив. Как ее описать, и к ней обращаться(считывать и записывать)
Большое спасибо.
Random (2002-03-30 19:57:00) [1]спасибо :)
Anatoly Podgoretsky (2002-03-30 19:54:00) [2]Нельзя нужно явное приведение, вот если бы не Left:=Data[i].Left, а x := Data[i].Left то можно, но это будет еще большее извращение, может функцией оформишь или еще лучше вообще подход изменишь, явно что то не в порядке в консерватории.
Random (2002-03-30 19:41:00) [3]А нельзя строчку Left:=Data[i].Left; оставить без изменений, а в if/case менять свойства data? Если да, то как?
Дима2 (2002-03-30 19:30:00) [4]Или if или case. Полностью с вами согласен.
Anatoly Podgoretsky (2002-03-30 19:26:00) [5]Странного хочешь, но
case что то of
0: TA(Data[i].Left);
1: TB(Data[i].Left);
Random (2002-03-30 19:03:00) [6]Что-то очень сложно :)
Объясните, если не трудно на моем примере:
у меня есть массив A:array of TControl и массив B:Array of Record(left,top:integer;end;)
и выражение Left:=Data[i].Left;
Мне нужно, чтобы в одном случае data указывала на массив A, а в другом на B.
Спасибо.
MBo (2002-03-30 18:34:00) [7]type rec=record
a,b:integer;
end;
prec=^rec;
var p:pointer;
p:=...
prec(p)^.a:=3;