AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

einen Button Disabled setzen

Ein Thema von cell · begonnen am 22. Jul 2005 · letzter Beitrag vom 22. Jul 2005
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:02
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:
if frmmain.zaehler<>0 then // Probier das mal
    frmmain.Drucken.Enabled:=true
else
    frmmain.Drucken.Enabled:=false;
Du darfst natürlich nur einen zentralen Zähler verwenden.
Peter
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#12

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:12
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:
wenn die Form noch nicht offen ist, bzw die Daten noch nicht drinnen sind
Deine MDI-Form zieht die Daten vermutlich aus einer Table oder Query.
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.

if mdiform.dbgrid1.datasource.dataset.recordcount > 0 then frmmain.Drucken.Enabled:=true
  Mit Zitat antworten Zitat
cell

Registriert seit: 5. Jul 2005
Ort: Ebensee
171 Beiträge
 
Delphi 4 Standard
 
#13

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:13
wo schreib ich das rein atm hat ich das im Form.Activate stimmt das ??
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#14

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:16
Wenn die Table/Query auf der MDI Form liegt, dann im AfterOpen der Table/Query ...

Da gehts übrigens auch leichter ...

frmmain.Drucken.Enabled:=(dataset.recordcount > 0) Dann wird der Button auch deaktiviert falls du die Query erneut abfragst und diese keine Datensätze zurückgibt ...
  Mit Zitat antworten Zitat
cell

Registriert seit: 5. Jul 2005
Ort: Ebensee
171 Beiträge
 
Delphi 4 Standard
 
#15

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:20
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 ????
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#16

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:21
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 Delphi-Referenz durchsuchen.AfterOpen deines TDataSets zu schreiben. Beim schliessen der DB-Abfrage (Delphi-Referenz durchsuchen.BeforeClose) kann der Butten wieder disabled werden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#17

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:24
Zitat:
Ich würde den Vorschlag von jensw_2000 (.RecordCount) damit kombinieren es in das .AfterOpen deines TDataSets zu schreiben. Beim schliessen der DB-Abfrage (.BeforeClose) kann der Butten wieder disabled werden.
Da kann man auch prüfen ob die MDIForm existiert ...

Beispiel:
frmMain.Drucken.Enabled:=(dataset.recordcount > 0) AND ( Assigned(myMDIForm) ) ...
  Mit Zitat antworten Zitat
cell

Registriert seit: 5. Jul 2005
Ort: Ebensee
171 Beiträge
 
Delphi 4 Standard
 
#18

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:34
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 =(
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#19

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 09:40
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

frmMain.Zaehler:=frmMain.Zaehler+1;
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: einen Button Disabled setzen

  Alt 22. Jul 2005, 10:22
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;
Peter
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz