![]() |
mit pfeil taste procedur auslösen
moin zusammen
ich bin gerade daran ein kleines progrämchen zu schreiben, mit welchem man bilder anschauen kann.. die bilder werden in ein Timage geladen.. ich habe nun unten 2 Buttons. ">>" um zum nächsten bild im gleichen ordner zu gelangen und "<<" um zum vorherigen bild im gleichen ordner zu gelangen.. nun wäre es aber praktisch wenn diese proceduren welche durch diese buttons ausgelöst werden auch mit den pfeiltasten ausgelöst werden können.. also wenn ich auf die pfeiltaste nach rechts drücke sollte das nächste und die linke das vorherige bild angezeigt werden.. wie mache ich das?? ich habe schon ALLES ausprobiert!! OnKeyPress, OnKeyDown (haben ja verschiedene variablen, char oder word) aber nichts geht.. ob ich nun (if key = VK_LEFT then) oder ob ich sonst eine taste nehme.. nichts geht.. ich hörte mal, dass es nicht guet geht, wenn man buttons aufm form hat da die pfeiltasten dann die buttons ansprechen.. aber auch mit der taste K oder weiss ich welche geht es nicht.. was kann ich machen??? danke für jede hilfe! :roll: |
Re: mit pfeil taste procedur auslösen
hört sich irgendwie an als wär die form deaktiviert bzw... :gruebel: :gruebel:
du sagst onkeypress... von der AKTIVIERTEN form? auch bei 'k'? prüf das alles mal... |
Re: mit pfeil taste procedur auslösen
:hi:
Setz mal KeyPreview der Form auf ture. mfg Tobias |
Re: mit pfeil taste procedur auslösen
Moin Blackvisions,
hier mal ein grobes Beispiel:
Delphi-Quellcode:
Da ein Button standardmässig die Pfeiltasten nicht weitergeleitet bekommt, muss man sich selber einen deklarieren der dem System "mitteilt", dass er die doch haben möchte.
type
TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); // Eigene OnKeyDown Methoden procedure ButtonLeft(Sender: TObject; var Key: Word;Shift: TShiftState); procedure ButtonRight(Sender: TObject; var Key: Word;Shift: TShiftState); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; // Button, ergänzt um die Abfrage der Pfeiltasten type TMyButton = class(TButton) private procedure WMGETDLGCODE(var msg : TWMGetDlgCode); message WM_GETDLGCODE; end; implementation {$R *.DFM} procedure TMyButton.WMGETDLGCODE(var msg: TWMGetDlgCode); begin inherited; // Auch die Pfeiltasten weitergeleitet bekommen. msg.Result := msg.Result or DLGC_WANTARROWS; end; procedure TForm1.ButtonLeft(Sender: TObject; var Key: Word;Shift: TShiftState); begin if Key = VK_LEFT then begin self.Caption := 'LINKS'; end else begin self.Caption := ''; end; end; procedure TForm1.ButtonRight(Sender: TObject; var Key: Word;Shift: TShiftState); begin if Key = VK_RIGHT then begin self.Caption := 'RECHTS'; end else begin self.Caption := ''; end; end; Es fehlt, z.B. noch, was bei den anderen Pfeiltasten passieren soll, denn dieser Automatismus (z.B. nächstes Control ansteuern) fehlt jetzt, und die Funktionalität müsste selber implementiert werden. |
Re: mit pfeil taste procedur auslösen
jo ich habe nur eine form gebraucht bis jetzt und diese ist logischer weisse aktiv. auch keypreview ist auf true..
mal ne ganz blöde frage: für diese funktion muss nicht eine spezielle komponente installiert werden oder units eingebunden werden?? :smile2: |
Re: mit pfeil taste procedur auslösen
Moin Blackvisions,
das von mir sollte nur zeigen, wie man es einbauen kann. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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