Ich hab da mal eine Frage..
Ich möchte mit öffnen des Programms gewisse Shortcuts aktivieren
Vorweg
wenn ich ein KeyDown definiere funktioniert das soweit. also ich kann mit einem Shortcut z.b. eine checkbox aktivieren.
wenn ich aber die selbe Tastenkompination erneut drücke hätte ich gern das sie sich wieder deaktiviert wird
das funktioniert nicht
kann mir da jemand helfen ? wie ich ein Event auslösen kann und mit nochmaligen Druck der selben Tastenkompination das wieder deaktivieren kann?
hab da schnell mal was zusammen geclickt
Code: Alles auswählen
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Buttons,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
BitBtn1: TBitBtn;
CheckBox1: TCheckBox;
procedure BitBtn1Click(Sender: TObject);
procedure CheckBox1Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
private
public
end;
var
Form1: TForm1;
key: Word;
Shift: TShiftState;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
if bitbtn1.Enabled=true then checkbox1.Checked:=false;
end;
procedure TForm1.CheckBox1Change(Sender: TObject);
begin
if checkbox1.Checked then
bitbtn1.Enabled:=true;
if checkbox1.Checked=false then
bitbtn1.Enabled:=false;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
bitbtn1.Enabled:=false;
end;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
);
begin
if ((ssMeta in Shift) and (ssAlt in Shift) and (Key = 69)) then // key = 65 - Taste 'A'
// key = 69 - Taste 'E'
checkbox1.Checked:=true; // (ssMeta in Shift ) steht für die CMD Taste beim MAC
end;
end.