Как редактировать свойство типа TStringList?

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

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

Ответить
Роман1971
новенький
Сообщения: 69
Зарегистрирован: 30.05.2007 09:14:53

Как редактировать свойство типа TStringList?

Сообщение Роман1971 »

Создан визуальный компонент, у которого есть несколько свойств типа TStringList.
Как сделать так, чтобы во время проектирования возможно было их редактирование?
Что не делаю - ошибка "Access violation".
Свойства описаны в конструкторе и инициализированы.
Есть методы чтения и присвоения значений полям Get... и Set...
Необходимо сделать так, чтобы во время проектирования свойство редактировалось так, как например в JvSQLDataSet свойство SQL:TStringList(т.е. нажал на свойство и появилось окно редактора списка строк).
:?:
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

а покажи пожалуста реализаию методов Get и Set
или сравни их с работающими образцами
там нельзя делать прямое присваивание

Код: Выделить всё

procedure TAAA.SetList(AList:TStringList);
begin
  FList:=AList;
end;

вот так не верно

Код: Выделить всё

procedure TAAA.SetList(AList:TStringList);
begin
  FList.Assign(AList);
end;


а вто так правильно

и ещё, глупый кконечно вопрос, ты в конструкторе сам FList (или что там у тебя) создаёш?
Аватара пользователя
shade
энтузиаст
Сообщения: 879
Зарегистрирован: 21.02.2006 19:15:48
Откуда: http://shamangrad.net/
Контактная информация:

Сообщение shade »

Знаю только теоретически, что для таких полей используются специальные классы-редакторы, а не Set/Get методы...
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

посмотри примеры кода - хотябы у меня в RxFPC - модуль rxdbcomb.pas
свойство values - всё работает как я описал
Роман1971
новенький
Сообщения: 69
Зарегистрирован: 30.05.2007 09:14:53

Сообщение Роман1971 »

Спасибо за советы, сейчас проверим. :)
Ответить