![]() |
TCheckBox.OnClick extern aufrufen
Hallo,
ich habe folgendes Problem: IST: Auf einer Form ist eine ganze Horde von Checkboxen angegliedert. Diese haben jeweils eigenes OnClick Event. Nun kann der Benutzer mit den Steuerelementen hantieren und dadurch verschiedene Elemente (Kopfbereich, Bilder, Tabellen, ... ) auf einem Report ein/-ausblenden. SOLL: Ich möchte beim OnShow der Form, alle OnClick Events der Checkboxen einmal ausführen. Dadurch sollen die Elemente des Reports, unabhängig der zuletzt gespeicherten Einstellungen, das anzeigen, was die Checkboxen beim Start anzeigen. VERSUCHT: Ich habe gedacht, ich könnte einfach wie bei einem Button, das Event via "Button1.click;" aufrufen, geht leider nicht.
Delphi-Quellcode:
Jemand eine Idee / einen Tipp / Lösungsvorschläge?//Starte das OnClick-Event aller Checkboxen die mit dem Namen cb_dm_ beginnen: For i:=0 to self.ComponentCount-1 do if ( self.Components[i] is TCheckbox ) and ( Pos('cb_dm_', self.Components[i].Name) = 1 ) then begin (self.Components[i] as TAdvofficeCheckbox).Click; end; Gruß L. |
AW: TCheckBox.OnClick extern aufrufen
Im Normalfall lagert man solche Dinge in Procedure aus und ruft diese dann auf.
Delphi-Quellcode:
Beim OnShow der Form rufst du dann nur noch die DoSomething Methode auf.
procedure TForm1.CheckBox1Click(Sender:TObject);
begin DoSomething(); end; procedure TForm1.DoSomething; begin DoSomethingWhatYouWant; end; |
AW: TCheckBox.OnClick extern aufrufen
Zitat:
|
AW: TCheckBox.OnClick extern aufrufen
Oder auf eine ActionList ausweichen und die Executes in einer Schleife ausführen
|
AW: TCheckBox.OnClick extern aufrufen
Hallo,
könnte auch so gehen:
Delphi-Quellcode:
procedure TForm1.FormShow(Sender: TObject);
var i : Integer; c : TComponent; n : TNotifyEvent; begin for i := 0 to ComponentCount - 1 do begin c := Components [i]; if (c is TAdvOfficeCheckBox) and (Pos ('cb_dm_', c.Name) = 1) then begin n := TAdvOfficeCheckBox (c).OnClick; if Assigned (n) then n (c) end end end; Gruß |
AW: TCheckBox.OnClick extern aufrufen
Hallo und danke für die Hilfestellungen!
Ich habe den Code von Volker verwendet, dieser funktioniert einwandfrei, auch wenn diese Methode nicht die eleganteste ist. Die Anmerkungen der anderen Mitglieder kann ich durchaus verstehen, es macht Sinn die Funktionalitäten in einzelne Proceduren auszulagern. Leider bin ich a. zu faul nun für alle Checkboxen jeweils eine extra Prozedure zu schreiben und b. ist diese Methode die Zeilenärmste. Gruß L. |
AW: TCheckBox.OnClick extern aufrufen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:39 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