Главная страница
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.034 c
6-1095277559
i-s-v
2004-09-15 23:45
2004.11.28
Аутентификация на SMTP сервере


11-1082825813
Max003
2004-04-24 20:56
2004.11.28
Что делать? Минимальный MCK проект(пустая форма) весит 25.5 кб


14-1100442458
Drakon
2004-11-14 17:27
2004.11.28
Linux на сервере


1-1100624643
TSoftman
2004-11-16 20:04
2004.11.28
Копирование файлов с визуализацией


3-1098930931
SDA
2004-10-28 06:35
2004.11.28
Как красиво удалить #tmp таблицу???!!!