AGB  ·  Datenschutz  ·  Impressum  







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

D2005 und keypreview

Ein Thema von hanspeter · begonnen am 12. Dez 2005 · letzter Beitrag vom 12. Dez 2005
Antwort Antwort
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

D2005 und keypreview

  Alt 12. Dez 2005, 10:48
Hallo,
ich habe wieder mal ein Problem bei der Umstellung von D7 auf D2005/6.
In einem Form ist keypreview auf true gesetzt und das Ereignis onkeydown abgefangen.
Dieses Ereignis kommt jedoch nur durch, wenn ActiveControl <> nil ist.
Ich will in einer Paintbox eine Grafik mit der Tastatur steuern.
Als workaround habe ich hinter einem Panel ein Editfenster (verdeckt) angeordnet und
setze bei ActiveControl=nil in einem Timer immer Edit1.Setfocus.
Weis wer eine bessere Lösung? Unter Delphi 7 funktionierte das problemlos.

Gruß
Peter
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#2

Re: D2005 und keypreview

  Alt 12. Dez 2005, 11:41
Also das scheint ein Bug in der VCL zu sein.
Trotz keypreview kommen keine Tastaturereignisse in der Form an, wenn
ActiveControl = nil ist.
Ich habe mir jetzt mit einer ApplicationEvent Componente geholfen.
(Es wird Strg + und strg - zum Zoomen abgefangen).

Hier die Lösung :

Delphi-Quellcode:
procedure Tf_Struktur.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if MSG.message = wm_keydown then
  begin
    if msg.wParam = 107 then
    begin
      Grafik.MouseWhel(120,LastMousepos);
      msg.wParam := 0;
      msg.message := 0;
    end;
  if msg.wParam = 109 then
    begin
      Grafik.MouseWhel(-120,LastMousepos);
      msg.wParam := 0;
      msg.message := 0;
    end;
  end;
end;
Gruß Peter

[edit=sakura] [delphi]Tags Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Surrounder
Surrounder

Registriert seit: 26. Sep 2003
Ort: Stuttgart
177 Beiträge
 
Delphi 2006 Professional
 
#3

Re: D2005 und keypreview

  Alt 12. Dez 2005, 11:47
Also ich habe kein ActiveControl gesetzt und bei mir wird wenn KeyPreview True ist das Event OnKeyDown ausgelöst. Hast Du denn die Updates installiert die es für D2005 gibt? Oder hab ich das jetzt falsch verstanden?
In C geschrieben und schön war zuletzt Franz Schuberts 9. Symphonie
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#4

Re: D2005 und keypreview

  Alt 12. Dez 2005, 11:59
Zitat von Surrounder:
Also ich habe kein ActiveControl gesetzt und bei mir wird wenn KeyPreview True ist das Event OnKeyDown ausgelöst. Hast Du denn die Updates installiert die es für D2005 gibt? Oder hab ich das jetzt falsch verstanden?
Ja alle Updates sind bei 2005 eingespielt.
In der Form ist neben einigen Menüs nur ein Treeview und eine Paintbox.
Der Fehler ist reproduzierbar aber inzwischen als Problem erst mal erledigt.

Gruß

Peter
  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 14:33 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