Je crée mon premier composant Delphi personnalisé. C'est fondamentalement un Tpanel fait sur commande avec le texte d'en-tête et de lignes affiché dessus.Comment implémenter une propriété stringlist dans un composant delphi personnalisé?
Je souhaite pouvoir ajouter plusieurs lignes de texte à l'aide d'une liste de chaînes.
Lors du test de la composante je ne peux pas obtenir les lignes de texte à afficher sur le panneau lors de l'ajout de lignes: NewLinesText.add (« texte line1 »)
Il ne fonctionne cependant quand je créer et alimenter une nouvelle stringlist lors de l'exécution puis l'assigner à mon contrôle: controlPanelitem.NewLinesText = MyNewStringlist
Je veux être en mesure d'ajouter des lignes comme ceci: NewLinesText.add (« text line1 »)
J'utilise professionnel Delphi 7 sur Windows XP. Voir le code ci-dessous.
Toute aide serait appréciée!
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.
que je fais déjà. Voir la procédure tControlPanelItem.SetLinesText qui appelle SetText. (procédure SetText n'est pas complète Im juste using showmessage pour voir si cela fonctionne) –
OK, je n'ai pas vu cela. (Comme vous le savez, le code n'était pas joli il y a quelques minutes!) Mais je ne vois pas de 'OnChange'? –
Bonjour. Merci pour votre réponse rapide. FLinesText est une liste de chaînes et n'a pas de propriété onchange autant que je sache? –