Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 2004.11.28;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.051 c
14-1099310768
DeMoN-777
2004-11-01 15:06
2004.11.28
Wireless


4-1097676921
Rico-X
2004-10-13 18:15
2004.11.28
Перехват сообщений нестандартного оборудования.


3-1099467520
SH
2004-11-03 10:38
2004.11.28
Хранение формул Microsoft Equation в поле записи


4-1093466109
Powerland
2004-08-26 00:35
2004.11.28
перехват


4-1097814067
petvv
2004-10-15 08:21
2004.11.28
Просмотреть запущенные процессы, найти нужный и убить его





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский