Ich erstelle meine erste benutzerdefinierte Delphi-Komponente. Es ist im Grunde eine benutzerdefinierte Tpanel mit Header und Zeilen Text darauf angezeigt.Wie kann eine Stringlisteneigenschaft in eine benutzerdefinierte Delphi-Komponente eingefügt werden?
Ich möchte mehrere Zeilen Text mit einer Stringliste hinzufügen können.
Wenn die Komponente testen kann ich nicht die Textzeilen bekommen auf dem Panel angezeigt wird, wenn Zeilen hinzufügen: NewLinesText.add (‚line1 Text‘)
Es ist jedoch nicht funktioniert, wenn ich schaffen und einen neuen String zur Laufzeit füllen und ordnen sie dann zu meiner Kontrolle: controlPanelitem.NewLinesText = MyNewStringlist
ich möchte in der Lage sein, Zeilen hinzufügen wie folgt aus: NewLinesText.add ('line1 Text')
ich bin mit Delphi 7 Professional auf WinXP. Siehe Code unten.
Jede Hilfe wäre willkommen!
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.
ich schon, dass tue. Siehe die Prozedur tControlPanelItem.SetLinesText, die SetText aufruft. (Prozedur SetText ist nicht abgeschlossen. Ich verwende nur showmessage, um zu sehen, ob es funktioniert) –
OK, das habe ich nicht gesehen. (Wie Sie wissen, war der Code vor ein paar Minuten nicht schön!) Aber ich kann keinen 'OnChange' sehen? –
Hallo. Vielen Dank für Ihre schnelle Antwort. FLinesText ist eine Zeichenfolgeliste und hat, soweit ich weiß, keine onchange-Eigenschaft? –