Tworzę swój pierwszy niestandardowy komponent Delphi. Jest to w zasadzie niestandardowy Tpanel z wyświetlonym na nim tekstem nagłówka i wiersza.Jak imponować właściwość stringlist w niestandardowym komponencie delphi?
Chcę móc dodawać wiele wierszy tekstu przy użyciu listy napisów.
Testując komponent nie mogę uzyskać linie tekstu do wyświetlenia na panelu podczas dodawania linie: NewLinesText.add („tekst”) line1
Uważa jednak pracować przy tworzeniu i wypełnić nową stringlist w czasie wykonywania a następnie przypisać go do mojego kontroli: controlPanelitem.NewLinesText = MyNewStringlist
Chcę, aby móc dodać linie tak: NewLinesText.add („tekst line1”)
używam Delphi 7 Professional na WinXP. Zobacz kod poniżej.
Każda pomoc zostanie doceniona!
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.
mam już robić. Zobacz procedurę tControlPanelItem.SetLinesText, która wywołuje SetText. (procedura SetText nie jest kompletna, ja tylko używam showmessage, aby sprawdzić, czy działa) –
OK, nie widziałem tego. (Jak wiecie, kod nie był ładny kilka minut temu!) Ale nie widzę żadnego "OnChange"? –
Hi. Dziękuję za szybką odpowiedź. FLinesText jest listą łańcuchów i nie ma właściwości onchange, o ile wiem? –