SIGSEGV при использовании TTIPropertyGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

SIGSEGV при использовании TTIPropertyGrid

Сообщение Azeroth » 01.11.2009 11:34:48

прошу помощи, у меня вылезла ошибка SIGSEGV в следующем случае:
вот такой класс я хочу показать в TIPropertyGrid:
Код: Выделить всё
tbaselist=class(tpersistent)
  private
    arr:array of string;
   public
    constructor create(len:integer);
    procedure load(s:string);
   published
   property f1:string read arr[0] write arr[0];
   property f2:string read arr[1] write arr[1];
   property f3:string read arr[2] write arr[2];
   property f4:string read arr[3] write arr[3];
  end; 

...
в коде есть присвоение
Код: Выделить всё
rec1:=tbaselist.Create(4); // длинна потом уберётся
TIPropertyGrid1.TIObject:=rec1; // вот это выбрасывает исключение
Аватара пользователя
Azeroth
новенький
 
Сообщения: 14
Зарегистрирован: 13.05.2009 14:28:53

Re: SIGSEGV при использовании TTIPropertyGrid

Сообщение Mr.Smart » 01.11.2009 13:01:51

А массив arr вы инициализируете?
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: SIGSEGV при использовании TTIPropertyGrid

Сообщение Azeroth » 01.11.2009 15:04:44

конечно, setlength делаю, вроде бы это должно работать

Добавлено спустя 50 минут 37 секунд:
мои попытки привели меня к ещё следующему неработающему коду,
Код: Выделить всё
  tarr=array[0..5] of string;
  parr=^tarr;

var arr:parr;
begin
getmem(arr,4* sizeof(string));
showmessage(inttostr(4* sizeof(string))); // 16- на 4 элемента
arr^[0]:='1'; // первый
showmessage(arr^[0]);
arr^[1]:='2'; // второй
showmessage(inttostr(@(arr^[1])-(@arr[0]))); //4 - как и должно быть
showmessage(arr^[1]);
arr^[2]:='3'; //  вот здесь опять sigsegv, хотя это только третий
showmessage(arr^[2]);
freemem(arr);
end;     

может кто проверит у себя, это, а то я начинаю думать что у меня что-то не то с fpc
я был бы очень благодарен за помощь.
Аватара пользователя
Azeroth
новенький
 
Сообщения: 14
Зарегистрирован: 13.05.2009 14:28:53


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 31

Рейтинг@Mail.ru