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

Вниз

Размер массива, переданного как ссылка.   Найти похожие ветки 

 
anbezr   (2003-02-13 14:34) [0]

Привет!
D5 ругается, когда я пытаюсь объявить:
property P1: array of word;
говорит, что ей нужен тип, но найдено: array... поэтому приходится передавать array of word след. образом:
.....
var Arr: array[0..110] of word;
.....
MyClass.P1 := @Arr;

и св-во описано как:
type
TArray = array of word;
.....
property P1: TArray;

как компонент может определить размер массива, переданного как pointer, или может есть другой способ объяснения св-ва...
Спасибо!


 
han_malign ©   (2003-02-13 14:48) [1]

а Arr: TArray - не судьба?
а вообще, большие данные принято передавать через методы, свойство тут смысла не имеют, все равно без дополнительных извратов ни в поток, ни в ObjectInspector, ни в COM интерфейс - не пролезут, а именно для этого они и существуют...


 
anbezr   (2003-02-13 15:00) [2]

даже если ч\з метод, то возможно написать только
procedure Load(Arr: array of word);
и вопрос об определении длинны Arr не снимается, или я что-то упускаю?




 
han_malign ©   (2003-02-13 15:48) [3]

Length/Low/High


 
Романов Р.В. ©   (2003-02-13 16:06) [4]

High(Arr)+1


 
anbezr   (2003-02-13 16:15) [5]

выдает какое-то $447640, хотя
Arr: array[0..3] of word;


 
anbezr   (2003-02-13 16:28) [6]

хотя при передаче в процедуре - работет нормально
Спасибо!


 
Романов Р.В. ©   (2003-02-13 16:29) [7]

У меня все нормально выдает. Код покажи.


 
han_malign ©   (2003-02-13 16:37) [8]

При передаче в качестве параметра функции, размер открытого массива опредляется на этапе компиляции. А когда в свойство прописывается у казатель, то естественно, что по нему нельзя определит размер.
Причем:
Do not apply the dereference operator (^) to a dynamic-array variable or pass it to the New or Dispose procedure.
- при присваиваивании динамическому массиву указателя, нарушается нормальная работа менеджера памяти, в лучшем случае засирается память, в худшем Access Violation...


 
anbezr   (2003-02-13 17:02) [9]

Спасибо - полная ясность



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

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

Наверх




Память: 0.48 MB
Время: 0.018 c
14-76129
pochtamt
2003-02-06 21:08
2003.02.24
Где можно взять какое-нибудь руководство или т.п. для


3-75834
Explorer
2003-02-05 09:10
2003.02.24
Запрос в ADOQuery


14-76145
Sergey13
2003-02-06 08:34
2003.02.24
Закон о языке


9-75731
Fog
2002-09-17 19:02
2003.02.24
чертов спрайт!


14-76108
Mikel
2003-02-06 16:46
2003.02.24
Как зашифровать?