Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4
  Alt 13. Jun 2002, 10:45
Dann ist es ja auch kein Wunder, denn während du die F7 Taste noch gedrückt hältst, betrittst dein Programm die ShowModal-MessageLoop. Wenn du nun die F7 Taste loslässt, wird ein OnKeyUp Ereignis ausgesandt, dass dann eben nicht von Form2 sondern von der ShowModal-MessageLoop an Form3 geleitet wird.

Code:
Form2.OnKeyDown([F7]) {
  Form3.ShowModal {
    Form3.Show
    repeat {
      Form3.ProcessMessages;
      [F7 Taste wird losgelassen ->] Form3.OnKeyUp
    }
    Form3.Hide;
  }
}
Du kannst das ganze über eine Variable lösen, die du vor dem Aufruf von Form3.ShowModal z.B. auf True setzt und dann in Form3.OnKeyUp nur reagierst, wenn diese Variable False ist, und wenn sie True ist, setzt du sie auf False.
  Mit Zitat antworten Zitat