Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Свойство TStringList

Delphi , Компоненты и Классы , Списки

Свойство TStringList

Автор: Mike Orriss

Вам необходимо определять поле как TStrings, а не как TStringList - ловушка, в которую, подразумеваю, попадал не я один!

Следующий пример показывает подход, необходимый для создания свойства, имеющего тип TStringList:


private
  FList: TStrings;

protected
  procedure SetList(Value: TStrings);
published
  property List: TStrings read FList write SetList;

...

constructor Txxxxx.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  FList := TStringList.Create;
end;

destructor Txxxxx.Destroy;
begin
  FList.Free;
  inherited Destroy;
end;

procedure Txxxxx.SetList(Value: TStrings);
begin
  FList.Assign(Value);
end;

Here's the translation of the text into Russian:

Делфи-свойство с TStringList! Это indeed правильный способ реализации свойства с типом TStringList. Автор, Майк Оррисс, сделал отличную работу по предоставлению полного примера.

Пусть мы разберемся: 1. Приватное поле: FList объявлено как приватное поле с типом TStrings. Это где будет храниться TStringList. 2. Защищенный метод установки: SetList - защищенный метод, который устанавливает значение FList. Он принимает параметр TStrings, который является новым значением для присваивания к FList. 3. Опубликованное свойство: Свойство List опубликовано и имеет доступ на чтение к FList, а также доступ на запись к SetList. Это означает, что вы можете использовать оператор точки для установки или получения значения свойства.

Конструктор создает новый экземпляр TStringList и присваивает его FList. В деструкторе освобождается FList, чтобы выпустить любые системные ресурсы. Метод SetList просто присваивает новое значение к FList.

В целом, это реализация обеспечивает правильную инициализацию и очистку свойства, а также предоставляет безопасный способ установки или получения значения TStringList.

Минорное предложение: всегда полезно проверять входное значение перед присваиванием его FList. Например, вы можете проверить, является ли это значение Nil. Это может помочь предотвратить потенциальные проблемы с исключениями null-указателей.

Вот обновленная версия кода:

procedure Txxxxx.SetList(Value: TStrings);
begin
  if Value = Nil then
    FList.Free
  else
    FList.Assign(Value);
end;

Таким образом, вы можете обеспечить правильную инициализацию и освобождение FList, когда это необходимо.

В статье рассмотрено свойство TStringList, его создание и использование в DELPHI-приложении, а также предлагается пример кода для создания свойства с типом TStringList.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Списки ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-10-08 19:15:34/0.0037238597869873/0