![]() |
Re: einen Button Disabled setzen
Ja das siehst du falsch. Wenn eine Form geschlossen wird, bleibt der Button trotzdem enabled.
Zum Problem: benutzt du den richtigen Zähler?
Delphi-Quellcode:
Du darfst natürlich nur einen zentralen Zähler verwenden.
if frmmain.zaehler<>0 then // Probier das mal
frmmain.Drucken.Enabled:=true else frmmain.Drucken.Enabled:=false; |
Re: einen Button Disabled setzen
Den Button kann man ja auch im onClose wieder deaktivieren ...
Die Lösung mit dem Zähler halte ich jedoch für fragwürdig, weil der Aspekt mit dem "Daten drinnen stehen" völlig ausser acht gelassen wird. Zitat:
Wie wärs, wenn du den Button nicht im onCreate aktivierst sondern nachdem die Datenquelle geöffnet bzw. verbunden wurde. Dann kannst du sogar noch prüfen ob die Datenquelle auch Datensätze enthält. Zu diesem Zeitpunkt ist sicher das die Form existiert und Daten auch enthält ... z.B.
Delphi-Quellcode:
if mdiform.dbgrid1.datasource.dataset.recordcount > 0 then frmmain.Drucken.Enabled:=true
|
Re: einen Button Disabled setzen
wo schreib ich das rein atm hat ich das im Form.Activate stimmt das ??
|
Re: einen Button Disabled setzen
Wenn die Table/Query auf der MDI Form liegt, dann im AfterOpen der Table/Query ...
Da gehts übrigens auch leichter ...
Delphi-Quellcode:
Dann wird der Button auch deaktiviert falls du die Query erneut abfragst und diese keine Datensätze zurückgibt ...
frmmain.Drucken.Enabled:=(dataset.recordcount > 0)
|
Re: einen Button Disabled setzen
nein die sind in einem eigenen datamodule aber lassen wir das mal mit den daten weg, also nur wenn die Form aufgefurfen wird! das kann man doch dann auch bei Form.Activate machen oder ????
|
Re: einen Button Disabled setzen
Irgendwie habe ich das Gefühl das mit deinem Programmdesign etwas nicht stimmt ;-)
Ich bekomme immer feuchte Augen wenn ich in einer Methode eine referenzierung zu einer Form sehe (z.B. frm_blubb.myLabel.Caption). Ich würde den Vorschlag von jensw_2000 (.RecordCount) damit kombinieren es in das ![]() ![]() |
Re: einen Button Disabled setzen
Zitat:
Beispiel:
Delphi-Quellcode:
frmMain.Drucken.Enabled:=(dataset.recordcount > 0) AND ( Assigned(myMDIForm) ) ...
|
Re: einen Button Disabled setzen
ich hab mal probiert dass ich 3 childs hintereinander aufrufe, aber es zählt mir nicht weiter also eigentlich müsste zaehler:=3; sein, aber das is es ned =(
|
Re: einen Button Disabled setzen
ist Zaehler ein als Public deklarierte Variable von frmMain ?
Dass sollte sie sein sein, wenn du es wirklich über den Zähler lösen möchtest .. Beim onCreate der MDI-Form dann halt
Delphi-Quellcode:
frmMain.Zaehler:=frmMain.Zaehler+1;
|
Re: einen Button Disabled setzen
Er kann auch die protected Methode UpdateActions der MDIForm benutzen und prüfen, ob MDIChildCount > 0 ist.
Delphi-Quellcode:
...
type TForm1 = class(TForm) ... protected procedure updateActions; Override; ... end; ... procedure TForm1.UpdateActions; begin Drucken.Enabled := (MDIChildCount > 0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:38 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