AGB  ·  Datenschutz  ·  Impressum  







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

[gelöst] Cursortasten von Buttons fernhalten

Ein Thema von Schwedenbitter · begonnen am 19. Sep 2017 · letzter Beitrag vom 20. Sep 2017
 
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Cursortasten von Buttons fernhalten

  Alt 20. Sep 2017, 06:54
Das ist das falsche Event. Dein Code gehört nicht in TForm.OnKeyUp sondern nach TApplicationEvents.OnShortCut (oder von mir aus TApplication.OnShortCut )...
Danke, das passt genau! Ich habe das jetzt so zusammengebaut:
Delphi-Quellcode:
procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
   var Handled: Boolean);
begin
   Handled:= True;
   if (ActiveControl is TButton) then
   begin
      case Msg.CharCode of
         VK_LEFT   : (ActiveControl as TButton).Left:= (ActiveControl as TButton).Left - 16;
         VK_UP      : (ActiveControl as TButton).Top:= (ActiveControl as TButton).Top - 16;
         VK_RIGHT   : (ActiveControl as TButton).Left:= (ActiveControl as TButton).Left + 16;
         VK_DOWN   : (ActiveControl as TButton).Top:= (ActiveControl as TButton).Top + 16;
      else
         Handled:= False;
      end
   end
   else Handled:= False;
end;
Ich habe es so unschön gebaut, weil ich es unübersichtlicher gefunden hätte, 4 Mal nur wegen Handled:= True; ein begin ... end; einzufügen. Es geht vermutlich auch schöner.
Und TApplication.OnShortCut finde ich sogar noch besser, weil ich keine zusätzliche Komponente mit reinbasteln muss. Und schließlich und letztlich habe ich mal im Code von Vcl.AppEvnts geschnüffelt. Beim weiteren Suchen bin ich dann auf die Möglichkeit gestoßen, das ganze auch komplett über die Messages abzufangen mit z.B. procedure CMDialogKey(var Message: TCMDialogKey); message CM_DIALOGKEY; . Nachteil ist allerdings, dass es kein Handled gibt und man aufpassen muss, die nicht ausgewerteten Tasten mit Inherited schön weiterzugeben.
Alex Winzer
  Mit Zitat antworten Zitat
 


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 11:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz