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

Вниз

TList и Record   Найти похожие ветки 

 
Pentium133 ©   (2004-11-09 13:12) [0]

У меня тут такая проблема возникла:
Есть объект TList в котором хранятся указатели на на некий Record.
Такое объявление:
 
 TGridColumn = record
   Str1:    string[50];
   Str1:    string[50];
   Visibl:   boolean;
 end;

Все работает отлично.

Но мне нужно такое
 
 TGridColumn = record
   Str1:    string;
   Str1:    string;
   Visibl:   boolean;
 end;


А вот сдесь возникают ошибки:

GetMem(p,SizeOf(TGridColumn));
i:= FGridColumns.Add(p); // var FGridColumns: TList;

TGridColumn(FGridColumns[i]^).Str1:= "123123123";
TGridColumn(FGridColumns[i]^).Str2:= "123123";
   
Ошибка в последней строке приведенного кода. Access violation.... Read of adress ....
Как дальше жить?


 
panov ©   (2004-11-09 13:15) [1]

var
 p: TGridColumn;
begin
 New(p);
 ...
 Dispose(p);


 
panov ©   (2004-11-09 13:17) [2]

Прошу прощения, ошибся.
Правильно так:
type
 PGridColumn: ^TGridColumn;
var
p: PGridColumn;
begin
New(p);
...
Dispose(p);


 
Pentium133 ©   (2004-11-09 13:23) [3]

Спасибо, разобрался.
Но почему не работало с GetMem?


 
wicked ©   (2004-11-09 13:36) [4]


> Но почему не работало с GetMem?

могу предположить, что не работало из-за того, что GetMem не инициализирует выделенный блок... посему и Str1, и Str2 ссылались куда-то в космос, а при присваивании эти "космические" ссылки и давали AV....

ЗЫ гадкий compiler magic в delphi... :)



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
14-1100193890
Vasyta_d_po_r
2004-11-11 20:24
2004.11.28
Подскажите название счетчика...


9-1090961858
xdev
2004-07-28 00:57
2004.11.28
Налаживание текстур на полигон


4-1097648493
Woolen
2004-10-13 10:21
2004.11.28
Как загрузить файл exe в память полностью?


1-1100622946
JIuraradg
2004-11-16 19:35
2004.11.28
Как оставить циклическую процедуру?


6-1095754729
needhelp
2004-09-21 12:18
2004.11.28
encoding