Einzelnen Beitrag anzeigen

taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#9

Re: FormKeyDown erkennt vk_Left... nicht

  Alt 11. Jun 2008, 16:03
Moin, Moin.

Habe das Thema notgedrungen heute noch einmal anfassen müssen - und konnte feststellen, dass folgende Lösung möglich ist: Der Lösungsansatz wie er von SirThornberry in #7 beschrieben wurde, hat funktioniert - leider konnte ich aber keinen passenden Ort für den Ausdruck ActiveControl:=nil finden. Nun meinte ich ihn gefunden zu haben:

Als erste Zeile im OnKeyPressed eingesetzt funktioniert es wie erwartet! Leider mit einem negativen Nebeneffekt: Damit verliert natürlich das vorher aktive Control den Focus. Nun, dachte ich, dann speichere/restauriere es. Das führte zu folgendem Konstrukt:

Delphi-Quellcode:
procedure Tfo~.FormKeyDown(Sender:TObject;var Key:Word;Shift:TShiftState);
var TmpActiveControl : TWinControl;
begin
  TmpActiveControl:=ActiveControl;
     ActiveControl:=nil;

  case Key of
    vk_Left : showmessage('left');
    //..
    end;

  ActiveControl:=TmpActiveControl; // damit geht's nicht?!
end;
Das Ergebnis ist nun leider wieder so, dass es nicht mehr funktioniert. Und das irritiert mich gewaltig. Obwohl die case()-Auswertung ja vor dem Restaurieren erfolgt, hat das ActiveControl:=nil nun keinen Effekt mehr. Wird die letzte Zeile auskommentiert, werden die Pfeiltasten wieder erkannt. Komisch ....
Ralph
  Mit Zitat antworten Zitat