AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

onCloseQuery

Ein Thema von mickmack · begonnen am 23. Nov 2003 · letzter Beitrag vom 24. Nov 2003
Antwort Antwort
mickmack

Registriert seit: 24. Sep 2003
Ort: Hamburg
51 Beiträge
 
#1

onCloseQuery

  Alt 23. Nov 2003, 17:10
Hallo zusammen,

ich habe folgendes Problem:

Und zwar möchte ich gerne beim Verlassen meines Forms die eingegebenen Werte überprüfen. Dies habe ich versucht über OnCLoseQuery zu realisieren, so dass bei falschen Werten das Form doch nicht schliesst sondern offen bleibt um diese Werte korrigieren zu können.
Doch diese Prüfung soll ja nur dann stattfinden, wenn der User auf -Speichern- geklickt hat. Bei Abbrechen- sollte das Form ohne Prüfung schliessen.

Mein Problem ist nun: OnCLoseQuery ist es ziemlich egal, welchen der beiden Button (beides BitButton ) ich gedrückt habe, er prüft immer. Auch über Sender ist nichts zumachen, denn Sender ist in diesem Fall nicht der Button sondern das Form.

Hat jemand ne Idee wie ich OnCLoseQuery nun verklickern kann ob geprüft werden soll oder nicht?

Oder gibts ne andere Lösung ?
Tu es oft - Bald bist du zu alt.
  Mit Zitat antworten Zitat
Niko

Registriert seit: 23. Jun 2003
416 Beiträge
 
Delphi 2006 Professional
 
#2

Re: onCloseQuery

  Alt 23. Nov 2003, 17:12
Du könntest beim Buttonklick einfach eine Variable setzen, über die dann in CloseQuery geprüft wird, welcher Button gedrückt wurde.

[EDIT] Mir ist gerade noch eine bessere Idee gekommen: Setze die Eigenschaft ModalResult der beiden Buttons auf mrOK bzw. mrCancel und überprüfe dann in OnCloseQuery die Eigenschaft ModalResult der Form auf diese Werte [/EDIT]
"Electricity is actually made up of extremely tiny particles called electrons, that you cannot see with the naked eye unless you have been drinking." (Dave Barry)
  Mit Zitat antworten Zitat
Tiefflieger

Registriert seit: 20. Mai 2003
18 Beiträge
 
Delphi 6 Personal
 
#3

Re: onCloseQuery

  Alt 23. Nov 2003, 18:41
warum packst du die überprüfung nicht in die OnClick-methode des "speichern" buttons und machst darin dann die forum nur dann zu, wenn alles ok ist?
Irren ist menschlich.
Aber wenn man richtig Mist bauen will, braucht man einen Computer.

Dan Rather, CBS-Fernsehreporter
  Mit Zitat antworten Zitat
mickmack

Registriert seit: 24. Sep 2003
Ort: Hamburg
51 Beiträge
 
#4

Re: onCloseQuery

  Alt 23. Nov 2003, 18:44
hab es jetzt so ähnlich gelöst. das problem waren die bitButtons. Die habe ich jetzt aber gegen normale Buttons ausgetauscht. Jetzt kann ich selber bsestimmen ob das Forumlar geschlossen wird oder nicht

Aber trotzdem Danke
Tu es oft - Bald bist du zu alt.
  Mit Zitat antworten Zitat
mickmack

Registriert seit: 24. Sep 2003
Ort: Hamburg
51 Beiträge
 
#5

Re: onCloseQuery

  Alt 23. Nov 2003, 22:21
hab gerade bemerkt, dass in meiner Überlegung noch ein Fehler steckt.
Kann es sein, dass folgendes nicht möglich ist. Bzw ich merke ja, dass es nicht möglich ist, aber kennt vielleicht jemand ne Möglichkeit es auf eine ähnliche Weise zu lösen?
Das Problem ist, das Formular ist über showModal geöffnet, und bei einem einfachen Close scheint es ja kein ModalResult zu geben.
Delphi-Quellcode:
procedure TFrmLizenz.BitBtnSpeichernClick(Sender: TObject);
begin
  if checkAll() then
    FrmLizenz.BitBtnSpeichern.ModalResult := mrOK
  else
    FrmLizenz.BitBtnSpeichern.ModalResult := mrNone;
end;
Also kann ich noch irgendwie während des onClicks-Ereignis das ModalResult ändern?
Tu es oft - Bald bist du zu alt.
  Mit Zitat antworten Zitat
Kamil

Registriert seit: 17. Aug 2002
178 Beiträge
 
#6

Re: onCloseQuery

  Alt 23. Nov 2003, 22:35
Im OnMouseDown Ereignis kannst du ModalResult problemlos ändern
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: onCloseQuery

  Alt 23. Nov 2003, 22:38
Moin Mickmack,

wenn Du das ModalResult für den Button nicht im OI zuweist, sondern auf mrNone lässt, kannst Du im OnClick Ereignis das Formular einfach mit
ModalResult := mrOK schliessen, wenn die Prüfung erfolgreich war, ansonsten weist Du ModalResult nichts zu.
Der Unterschied ist, dass nicht die Eigenschaft ModalResult des Buttons, sondern die des Formulares verwendet wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
mickmack

Registriert seit: 24. Sep 2003
Ort: Hamburg
51 Beiträge
 
#8

Re: onCloseQuery

  Alt 24. Nov 2003, 08:58
super danke. jetzt gehts
Tu es oft - Bald bist du zu alt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:45 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