AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein VirtualStringTree OnKeyPress wird ohne Focus auf VST ausgeführt
Thema durchsuchen
Ansicht
Themen-Optionen

VirtualStringTree OnKeyPress wird ohne Focus auf VST ausgeführt

Ein Thema von Bünni · begonnen am 11. Apr 2019 · letzter Beitrag vom 11. Apr 2019
Antwort Antwort
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#1

VirtualStringTree OnKeyPress wird ohne Focus auf VST ausgeführt

  Alt 11. Apr 2019, 13:46
Mein VirtualStringTree hat ein eigenes OnKeyPress wo ich VK_F4 und VK_Return abfrage.
Wenn ich VK-F4 drücke wird ein modales Formular geöffnet. Auf diesem Formular gibt es ein TEdit welches auf die Entertaste reagiert und in diesem Fall einen Button klick, welcher das Formular schließen soll

Delphi-Quellcode:
procedure TForm2.Edit1KeyPress(Sender: TObject);
begin
 if (Key = #13) then
  begin
   Key := #0;
   Button1Click(Self);
  end;
end;

procedure TForm2.Button1Click(Sender: TObject; var Key: Char);
begin
 // viele Konditionen und Dinge

 Close;
end;
Das funktioniert alles wie gewollt bis auf, dass sobald Form2 geschlossen ist sich VSTKeyUp meldet und denkt, ich hätte VK_ENTER gedrückt. Habe ich auch, aber in einem anderen modalen Fenster.
Wie unterbinde ich dieses Verhalten?
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
668 Beiträge
 
Delphi 12 Athens
 
#2

AW: VirtualStringTree OnKeyPress wird ohne Focus auf VST ausgeführt

  Alt 11. Apr 2019, 15:06
Hast du das mal langsam ausprobiert? Wenn du im Edit Return drückst und gedrückt lässt, wird das Formular geschlossen. Dann lässt du die Return-Taste lost und das Keyup-Event kommt beim Vst an.

Du solltes hier nicht OnKeyPress und OnKeyUp mischen. Also entweder in Vst und im TEdit auf OnKeyPress reagieren oder in beiden OnKeyUp verwenden.
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.824 Beiträge
 
Delphi 12 Athens
 
#3

AW: VirtualStringTree OnKeyPress wird ohne Focus auf VST ausgeführt

  Alt 11. Apr 2019, 19:53
Ggf. den fälschlicherweise aufgerufenen Eventhandler beim VST an der entsprechenden Stelle mal auf nil setzen, dann kann da nix mehr aufgerufen werden.
Vermutlich muss er später aber wieder zugewiesen werden.
  Mit Zitat antworten Zitat
Bünni

Registriert seit: 4. Mär 2019
67 Beiträge
 
#4

AW: VirtualStringTree OnKeyPress wird ohne Focus auf VST ausgeführt

  Alt 11. Apr 2019, 22:38
Für das VST habe ich OnKeyDown genommen und OnKeyUp ersetzt.
Das scheint so jetzt ganz gut zu funktionieren.
OnKeyUp scheint aber auch allgemein ein Teufel zu sein auch was Fokus angeht. Werde es nicht mehr nutzen wenn möglich.

Understanding and Processing Keyboard Events in Delphi
  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 23:11 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