Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Caption von Button automatisch ändern? (https://www.delphipraxis.net/156382-caption-von-button-automatisch-aendern.html)

smart 30. Nov 2010 10:29

Caption von Button automatisch ändern?
 
Hallo Alle!
Ich habe eine Form mit 48 Buttons drauf. Die Beschriftung der Button muss wärend des Programmlaufs geändert werden. Die Daten der Beschriftungen sind in einer Datenbank verfügbar. Wie kann ich es anstellen alle Buttons auf einmal zu ändern - z.B. mit einer Schleife - , damit ich nicht jeden Button einzeln ändern muss.Nach dem Motto: Datenfeld 1 bis 48 = Button 1-48.

Luckie 30. Nov 2010 10:33

AW: Caption von Button automatisch ändern?
 
Tausend mal gefragt,
Tausend mal nicht gesucht.
Tausend und eine Frage
Und es hat zoom gemacht.

Delphi-Quellcode:
FindComponent

DeddyH 30. Nov 2010 11:06

AW: Caption von Button automatisch ändern?
 
Oder in einem Array/einer Liste die Buttons selbst verwalten. Da ja wahrscheinlich eine Schleife verwendet wird, um die Buttons zu beschriften, ist FindComponent da nicht die optimale Lösung, da es intern selbst über die Komponenten iteriert.

Uwe Raabe 30. Nov 2010 11:42

AW: Caption von Button automatisch ändern?
 
Eine weitere Option ist, jedem Button einen eindeutigen Wert in das Tag-Property zu schreiben. Dann kann in einer Schleife über Components iteriert werden. Ist die aktuelle Komponente ein TButton, dann kann das Tag-Property dazu verwendet werden, die entsprechende Caption aus der Datenbank zu holen. Was im Endeffekt die bessere Performance hat, hängt von diversen Umständen ab.

smart 30. Nov 2010 11:59

AW: Caption von Button automatisch ändern?
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1065008)
Eine weitere Option ist, jedem Button einen eindeutigen Wert in das Tag-Property zu schreiben. Dann kann in einer Schleife über Components iteriert werden. Ist die aktuelle Komponente ein TButton, dann kann das Tag-Property dazu verwendet werden, die entsprechende Caption aus der Datenbank zu holen. Was im Endeffekt die bessere Performance hat, hängt von diversen Umständen ab.

Hi Uwe,

kannst du mal ein wenig konkreter werden. Wie meinst Du das mit den Tag-Property?Ich kann es mir im Moment nicht so vorstellen.

DeddyH 30. Nov 2010 12:42

AW: Caption von Button automatisch ändern?
 
Jede Komponente besitzt eine Tag-Property vom Typ integer. Diese steht zur freien Verfügung und hat keine weitere Bedeutung. Uwe meint, hier sollst Du nun eine eindeutige Zahl je Button reinschreiben, über die Du den Button identifizieren und somit beschriften kannst.

himitsu 30. Nov 2010 14:53

AW: Caption von Button automatisch ändern?
 
Zitat:

Zitat von DeddyH (Beitrag 1065030)
Jede Komponente besitzt eine Tag-Property vom Typ integer. Diese steht zur freien Verfügung und hat keine weitere Bedeutung. Uwe meint, hier sollst Du nun eine eindeutige Zahl je Button reinschreiben, über die Du den Button identifizieren und somit beschriften kannst.

Sowas kann man sich z.B. in meinem Hier im Forum suchenManifestCreator sehn, wo ich dieses wohl ein bissl zu Weit getrieben und zu einer Index-Kennung auch noch andere Optionen in das .TAG einkodiert hab. :oops:
> das Laden und Speichern nutzt z.B. diese Werte

Sir Rufo 30. Nov 2010 15:01

AW: Caption von Button automatisch ändern?
 
Alternativ wäre das auch mit einem Observer-Pattern zu lösen.

Eine weitere Alternative (kommt aber auf das Konzept an) wäre die Buttons mit jeweils einer TAction zu versehen. Die TActions werden ja über eine TActionList verwaltet und können daher sehr einfach angesprochen werden.

Weiterhin könnten sich die TActions via OnUpdate-Event auch selber einstellen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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