![]() |
Hallo,
Zitat:
Du stellt bei jedem Deiner Formulare, auf dem sich die für Dich relevanten Eingabefelder befinden die Eigenschaft "KeyPreview" auf true. Dann setzt Du ebenfalls in jedem dieser Formulare die Ereignis-Routine für das Ereignis "OnKeyDown" auf "Enter-Tab". Und genau damit hast Du die gewünschte Verknüpfung. |
Hallo Daniel,
na siehst Du, manchmal sieht man etwas offensichtliches nicht. :mrgreen: Habe mir zwischenzeitlich mal das KeyPreview angesehen, da war es fast klar, aber das hier nicht : Zitat:
Gruß Hansa |
Hallo,
ihr seit Spitze ! :bounce2: Das geht jetzt einwandfrei. Hatte schon befürchtet, mich mit diesem Kram schon wieder wochenlang aufzuhalten. Aber jetzt habe ich noch bemerkt, daß auf meiner Form die Felder total durcheinander erreicht werden (kreuz und quer). Die Taborder ist also noch verkehrt. :mrgreen: Aber jetzt weiß ich zumindest, wo ich weiter machen muß. Gruß Hansa |
Hi,
das Thema ist immer noch nicht beendet ! :(
Code:
Drücke ich auf der Form esc, so kommt obige Abfrage zwar, aber er springt in das letzte "betretene" Feld zurück, anstatt die Form zu schließen. Lasse ich MessageDlg (sonst nichts) weg, klappt es wunderbar. Was kann das denn jetzt noch sein ?
procedure TKuStamm.FormClose(Sender: TObject; var Action: TCloseAction);
begin IF NOT KuModul.KuDatenSatz.IsEmpty THEN BEGIN if MessageDlg('Soll der Datensatz gespeichert werden ?', mtInformation, [mbYes, mbNo], 0) = mrYes then begin KuModul.KuDatenSatz.post; KuModul.TransAction.Commit; END END; KuModul.Database.close; end; Gruß Hansa |
Moin Hansa,
eine Idee, nur so aus dem Gefühl heraus, ohne dass ich's im Moment begründen könnte. Tausch' doch mal MessageDlg durch MessageBox aus (nicht Application.MessageBox)
Code:
BTW:
[b]if[/b] MessageBox(
self.Handle, 'Soll der Datensatz gespeichert werden ?', 'Fenstertitelzeile', MB_ICONQUESTION [b]or[/b] MB_YESNO) = IDYES [b]then[/b] [b]begin[/b] [color=#000080]// ...[/color] [b]end[/b]; Hast Du die Möglichkeit des Abbruchs jetzt absichtlich weggelassen? |
Hallo Christian,
Zitat:
Gruß Hansa |
Nee,
kein Unterschied bis auf die Titelzeile. Werde das jetzt mit einer ganz einfachen Variable durchziehen, die ich im Quelltext setze. Gruß Hansa |
Hi,
also das muß an MessageDlg liegen. Kann das Verhalten aber noch präzisieren : Drücke ich ESC kommt der Dialog. Egal was ich auswähle lande ich wieder in dem Feld, wo ich ESC drückte. Drücke ich wieder ESC wird die Form geschlossen, eine neuerliche Abfrage kommt nicht. Irgendwas hängt da im "luftleeren Raum". :angle: Gruß Hansa |
Moin Hansa,
ich hab' eben noch mal zurückgeblättert, und dabei gesehen, dass in der EnterTab Routine (in der ja auch ESC abgefragt wird) Perform verwendet wird. Meiner Erfahrung nach macht das manchmal Probleme. Das Perform könntest Du mal gegen SendMessage(self.Handle,..... oder SendMessage(Handle,.... oder SendMessage(TWinControl.Handle,.... austauschen (für TWinControl natürlich den entsprechenden Namen einsetzen). Je nachdem, in welcher Form das Perform verwendet wird. |
Hallo Christian,
in dem ESC-Teil von EnterTab kommt kein Perform vor, also kann ich es auch nicht ersetzen. Vielleicht ist das aber der Fehler ! Nur was soll ich da hinschreiben ? Gruß Hansa |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 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