Как реализовать свойство списка строк в настраиваемом компоненте delphi?

Я создаю свой первый пользовательский компонент Delphi. По сути, это настраиваемая Tpanel с отображаемым на ней заголовком и текстом строк.

Я хочу иметь возможность добавлять текст из нескольких строк с помощью списка строк.

При тестировании компонента я не могу отобразить текстовые строки на панели при добавлении строк: NewLinesText.add ('line1 text')

Однако он работает, когда я создаю и заполняю новый список строк во время выполнения, а затем назначьте его моему элементу управления: controlPanelitem.NewLinesText = MyNewStringlist

Я хочу иметь возможность добавлять такие строки: NewLinesText.add ('line1 text')

Я использую Delphi 7 professional на WinXP. См. Код ниже.

Любая помощь приветствуется!


unit ControlPanelItem;

interface

uses
  SysUtils, Classes, Controls, ExtCtrls, Graphics, AdvPanel, StdCtrls,
  Windows,Forms,Dialogs;

type
  tControlPanelItem = class(TAdvPanel)
  private
    fLinesText : TStrings;
    procedure SetLinesText(const Value: TStrings);
    procedure SetText;
  protected
  public
    constructor Create(AOwner : TComponent); override;
    destructor Destroy; override;
  published
    property NewLinesText  : TStrings read FLinesText write SetLinesText;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Samples', [tControlPanelItem]);
end;

constructor tControlPanelItem.Create(AOwner: TComponent);
begin
  inherited;
  fLinesText := TStringList.Create;
end;

destructor tControlPanelItem.Destroy;
begin
  fLinesText.Free;
  inherited;
end;

procedure tControlPanelItem.SetLinesText(const Value: TStrings);
begin
  fLinesText.Assign(value);
  SetText;
end;

procedure tControlPanelItem.SetText;
var
   count : Integer;
begin
 for count := 0 to fLinesText.Count - 1 do
  ShowMessage(fLinesText.strings[count]);

end;

end.

7
задан Hardy Le Roux 29 October 2010 в 09:25
поделиться