AGB  ·  Datenschutz  ·  Impressum  







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

OnKeyUp – Übergreifend...???

Ein Thema von Gast · begonnen am 13. Jun 2002 · letzter Beitrag vom 13. Jun 2002
Antwort Antwort
Gast
(Gast)

n/a Beiträge
 
#1

OnKeyUp – Übergreifend...???

  Alt 13. Jun 2002, 10:08
Hi,

Ich habe ein Forumular (Form2) (FormStyle: fsMDIChild)

Aus diesem Formular erzeuge ich ein anderer Formular für die Suche (Form3) (FormStyle: fsNormal).

Auf dem From3 habe ich NUR ein TEdit Feld mit:


[code:1:5059303266]
procedure Tform3.Edit1KeyUp(Sender: TObject; var Key: Word;
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 13. Jun 2002, 10:23
Das einfachste wäre wohl den Beep auf das OnKeyPress Ereignis zu legen, anstelle des OnKeyUp.

P.S. Ist es nicht nervig, dass der Rechner andauernd piept
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#3
  Alt 13. Jun 2002, 10:31
Hallo Sakura,

natürlich Beep ist hier nur als Beispiel gemeint..., da wird dort was anderes ausgeführt...

und es ist wichtig, dass dies genau dort passiert...

Nachtrag

Das Form3 wird natürlich in dem OnKeyDown-Ereignis des Form2 erzeugt...


Gruß

Paul Jr.
  Mit Zitat antworten Zitat
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
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#5
  Alt 13. Jun 2002, 10:45
Dann muss ich Dich leider erst einmal vertrösten, da mir auf die Schnelle auch keine Lösung einfällt.

Das Problem ist, daß das neue Form (3) [intern] beim OnKeyPress Event geöffnet wird und sofort den Fokus erhält. Anschließend wird die F7-Taste losgelassen. Da Form (3) den Fokus hat, geht das OnKeyUp Ereignis an dieses Form...
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#6
  Alt 13. Jun 2002, 11:02
Hallo jbg, Hallo Sakura,


Die Erklärung von jbg hat mir die Augen geöffnet...

Natürlich...wenn mein Edit1-Feld als erster den Focus erhält...dann wird sein OnKeyUp Ereignis ausgeführt...

Ich habe also jetzt noch einen Edit-Feld dazu gefügt und die Tabulatoren- Reihenfolge geändert... so, dass das Feld mit dem Ereignis OnKeyUp... als zweite an der Reihe ist...


Und es klappt...

Danke

Gruß

Paul Jr.
  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 13:58 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