![]() |
keypress und window schliessen
Hallo,
ich habe ein seltsames Verhalten in einem von uns geschrieben Programm. Vielleicht kann jemand helfen. Es befinden sich, auf einem Formular 3 Radiobuttons und zwei Buttons. Mit einem Button werden die Werte der drei Radiobuttuns (checked) in boolsche Variablen geschrieben. Beim öffnen des Formulars werden die Radiobuttons (onshow) jeweils wieder so gesetzt wie sie in den Variablen standen. Der zweite Button schliesst das Fenster einfach mit close. Das funktioniert alles prächtig. Wir wollen das Fenster aber auch mit ESC schliessen und haben das Ganze in onkeypress des Formulars abgefangen. Funktioniert auch, nur sind die Zustände der Radiobuttons, nach dem wiederöffnen, in einem falschen Zustand, obwohl diese laut Debugger richtig gesetzt sind. Beim verlassen des Formulars mit dem Button muss sich das Fenster also anders verhalten als beim verlassen über Onkeypress, obwohl in beiden nur ein close steht. Ich versteh das nicht. Rainer |
Re: keypress und window schliessen
Hi runger,
sind die Boolschen Variablen global oder lokal definiert? mfg BrunoT |
Re: keypress und window schliessen
Hallo,
global definiert. Das ist es aber nicht, hab ich mit Debugger überprüft. Die Radiobuttons werden in onshow richtig gesetzt, aber trotzdem falsch angezeigt. Wie gesagt, ich verstehs nicht. Rainer |
Re: keypress und window schliessen
Versuch mal, mit Keypress das ButtonClick-Ereignis des Schließen-Buttons anzusprechen
|
Re: keypress und window schliessen
Hallo,
hab ich auch versucht. Gleiches Verhalten. Das Programm verhält sich nach wie vor anders wenn ich das Window mit ESC verlasse. Rainer |
Re: keypress und window schliessen
Hallo,
ich bekomme dieses Problem auch, wenn ich statt onkeypress den Abbruchbutton cancel auf true setze und dann mit ESC rausgehe. Rainer |
Re: keypress und window schliessen
Nützt es etwas wenn du das Ganze im KeyDown statt im KeyPress versuchst?
|
Re: keypress und window schliessen
Hast du die Variable Key nach keypressed auf Null gesetzt oder bei ESC gelassen?
Delphi-Quellcode:
ich denke mal, da ESC ja als Abbruch sonst vom Programm weiterverarbeitet wird, erfolgt keine korrekte Zuweisung.
if key = 27 then
Begin key:=0; close; end; @ringli, Das ist schon interessant, ich weiß nur nicht im Augenblick, welches Ereignis zuerst eintritt. Das wäre auszuprobieren. |
Re: keypress und window schliessen
Also ich mache dass immer so:
Delphi-Quellcode:
{*** Tastenkürzel vergeben ***}
procedure TProgramm.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin {*** ESC beendet das Programm ***} if (Key = $1B) then CancelClick (Sender); end; |
Re: keypress und window schliessen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
nützt alles nix. Hier ist ein Testprog mit Quellcode. Vielleicht findet ihr raus was da passiert. Für alle Stylisten, das ist ein schnell zusammengeschustertes Prog. Rainer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:48 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