THotKey - MacOS / Windows

Zur Vorstellung von Komponenten und Units für Lazarus

THotKey - MacOS / Windows

Beitragvon EugenE » 7. Nov 2010, 18:27 THotKey - MacOS / Windows

Hi :),

hab mal eine kleine THotKey-Klasse geschrieben welche unter MacOS und Windows läuft :)

Wie funktioniert es:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Bei Windows muss das Form.Handle übergeben werden
  // Bei Mac braucht man keins
  MyHotKey := THotKey.Create{$IFDEF MSWINDOWS}(Handle){$ENDIF};
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  MyHotKey.Free;
end;
 
{...}
 
// Dieses Event wird dann von der Komponente aufgerufen
procedure TForm1.MyHotKeyEvent(Key, Option: Word);
begin
  case Key of
    VK_A: ShowMessage('A');
    VK_1: ShowMessage('1');
  end;
end;
 
// Un/Registrieren eines HotKeys
// Key, Option, Event
MyHotKey.RegisterHotKey(VK_A, 0, @MyHotKeyEvent);
// HotKey ID
MyHotKey.UnRegisterHotKey(0);


Dank der Hilfe von skalogryz, konnte ich die Mac-Version portieren :).

Wenn noch jemand die Linux Version hinzufügen könnte, wäre die Sache komplett ;)

Gruß
Eugen
Dateianhänge
hotkey.pas
Die HotKey Unit
(6.97 KiB) 17-mal heruntergeladen
EugenE
 
Beiträge: 440
Registriert: 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1) | 
CPU-Target: 64Bit
Nach oben

Beitragvon carli » 7. Nov 2010, 18:40 Re: THotKey - MacOS / Windows

EugenE hat geschrieben:
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Bei Windows muss das Form.Handle übergeben werden
  // Bei Mac braucht man keins
  MyHotKey := THotKey.Create{$IFDEF MSWINDOWS}(Handle){$ENDIF};
end;


Das gefällt mir noch nicht so. frage lieber in der Implementation nach Application.Handle im Fall von MSWINDOWS, anstatt es den Benutzer (..der Klasse) machen zu lassen.
carli
 
Beiträge: 660
Registriert: 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2 | 
CPU-Target: 64Bit
Nach oben

Beitragvon EugenE » 7. Nov 2010, 18:56 Re: THotKey - MacOS / Windows

carli hat geschrieben:Das gefällt mir noch nicht so. frage lieber in der Implementation nach Application.Handle im Fall von MSWINDOWS, anstatt es den Benutzer (..der Klasse) machen zu lassen.


Ich wusste nicht ob man auch von Application das Handle nehmen darf :D, naja wem dieser einfacher Aufruf zu viel, dann kann man es ja einfach im Code ändern :D

Die Klasse kann jeder bearbeiten der es möchte, solang es gute änderungen sind, einfach hier im Thread posten :)

Eugen
EugenE
 
Beiträge: 440
Registriert: 10. Dez 2006, 14:59
OS, Lazarus, FPC: MacOSX Lion 10.7 (L 0.9.31 FPC 2.7.1) | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Units/Komponenten



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried