![]() |
AW: Button mit Variable ansteuern
Zitat:
Delphi-Quellcode:
.
TButton(FindComponent('button1')).Caption := '';
Quellcode schließt man übrigens in [delphi]-Tags ein :wink: |
AW: Button mit Variable ansteuern
Delphi-Quellcode:
var Button: TButton;
... Button := FindComponent('Button1') as TButton; if Assigned(Button) then Button.Caption := ''; |
AW: Button mit Variable ansteuern
Naja, nach dem ersten Aufruf legt FindComponent (von TComponent) eine interne Liste der Controls an:
Delphi-Quellcode:
Hab jetzt nur nicht näher geschaut, ob diese Liste beim Hinzufügen und Löschen von Komponenten auch geupdated wird -- aber ich gehe mal stark davon aus. Von daher sollte das von der Performance her auch noch okay sein.
{ Fill the sorted list (and sort it) }
FSortedComponents := TList.Create; FSortedComponents.Count := FComponents.Count; for I := 0 to FComponents.Count - 1 do FSortedComponents[I] := FComponents[I]; FSortedComponents.SortList( function(Item1, Item2: Pointer): Integer begin Result := CompareText(TComponent(Item1).Name, TComponent(Item2).Name); end); BTW: Darf ich SourceCode aus der VCL hier einfach posten?! -> Copyright! |
AW: Button mit Variable ansteuern
Delphi-Quellcode:
TButton(findcomponent('button' + IntToStr(i))).caption := IntToStr(i);
|
AW: Button mit Variable ansteuern
Tatsächlich, das sieht hier unter Delphi 2007 zwar etwas anders aus, aber diese Liste wird auch bei mir erzeugt. Das war IIRC früher aber mal anders, da wurde bei jedem Aufruf das komplette Components-Array durchlaufen.
[edit] @implementation, Bummi: was ist, wenn die Komponente nicht gefunden wird? Dann sollte es beim Zugriff auf Caption knallen. [/edit] |
AW: Button mit Variable ansteuern
killllllll mich ,danke
|
AW: Button mit Variable ansteuern
@DeddyH
man kann das schon kapseln, Du möchtest sowas
Delphi-Quellcode:
aber wenn ich weiß was ich tue spare ich mir das mitunter ...
var
B:TButton; begin b := TButton(FindComponent('Button' + IntToStr(i))); if Assigned(B) then begin //was auch immer end; |
AW: Button mit Variable ansteuern
Das entspricht jetzt ziemlich meinem eigenen Code aus #12 ;) Und ich denke mir immer: sicher ist sicher, die eine Assigned-Abfrage tut keinem weh, macht das Programm aber stabiler.
|
AW: Button mit Variable ansteuern
Ach noch ne kleine info ich habs jetzt findcomponent darf ich ja nur in einer procedur der form1 benutzen ich hab aber meine eigene proc muss die jetzt halt ersetzen
|
AW: Button mit Variable ansteuern
Zitat:
Denn es handelt sich hierbei um eine Methode von TForm
Delphi-Quellcode:
procedure MachWas( Form : TForm );
begin Form.FindComponent( ... ); end; // Aufruf z.B. so procedure TForm1.EineMethode; begin MachWas( Self ); // Self ist die Referenz auf die aktuelle Instanz end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz