Je construire un wich TObjectList stockera objets de la classe TButton:TObjectList trouver un élément
...
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure FormCreate(Sender: TObject);
public
function FindButton (const aButtonName: string; var aButton: tButton) : Boolean;
end;
...
var ButtonObjectList : TObjectList<TButton>;
function TForm1.FindButton (const aButtonName: string; var aButton: tButton) : Boolean;
...
var b : Integer;
begin
Result := False;
for b := Low (ButtonObjectList.Count) to High (ButtonObjectList.Count) do
if ButtonObjectList.Items [b].Name = aButtonName then begin
Result := True;
aButton := ButtonObjectList.Items [b];
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ButtonObjectList := TObjectList<TButton>.Create(True);
ButtonObjectList.Add(Button1);
ButtonObjectList.Add(Button2);
ButtonObjectList.Add(Button3);
end;
plus loin, dans l'unité untRetrieveButton:
...
var Button : TButton;
procedure FindAButton;
begin
if Form1.FindButton ('Button 1', Button) then
ShowMessage ('Button found')
else
ShowMessage ('Button not found')
end;
Je veux revenir un bouton arbitraire stocké dans ButtonObjectList, mais à ce stade, je ne connais que le nom du bouton. D'après ce que je l'ai appris à la documentation TObjectList, la seule façon de ACHIVE cela, parcourt la liste complète des articles et comparer le paramètre aButtonName avec le dans le TObjectList, comme dans
function TForm1.FindButton (const aButtonName: string; var aButton: tButton) : Boolean;
nom Button
Est-ce droit , ou existe-t-il un moyen meilleur et plus efficace de récupérer un bouton arbitraire par son nom?
En effet TDictionary est très puissant et convient à mes besoins. J'ai également trouvé le TObjectDictionary, qui semble être encore plus adapté à mes objectifs. Merci! – ppro
Correction: "plus approprié pour mes _pourposes_" – ppro