unit MultiKey_uMain;
interface
uses
Inifiles, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, ComCtrls, jpeg, ExtCtrls, Menus, ButtonComps,
ExtDlgs;
type
TForm1 =
class(TForm)
ImageButton1: TImageButton;
ImageButton2: TImageButton;
ImageButton3: TImageButton;
Image1: TImage;
Image2: TImage;
ImageButton4: TImageButton;
ImageButton5: TImageButton;
ImageButton6: TImageButton;
ImageButton7: TImageButton;
ImageButton8: TImageButton;
ListView1: TListView;
Tasten: TEdit;
Bezeichnung: TEdit;
Typ: TComboBox;
offnen: TEdit;
ImageButton9: TImageButton;
OpenDialog1: TOpenDialog;
procedure ImageButton9Click(Sender: TObject);
procedure ImageButton6Click(Sender: TObject);
procedure ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
procedure ImageButton4Click(Sender: TObject);
procedure ImageButton2Click(Sender: TObject);
procedure ImageButton1Click(Sender: TObject);
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure FormDestroy(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
public
procedure WMHotKey(
var msg: TMessage);
message WM_HOTKEY;
end;
var
Form1: TForm1;
Spalte : TListColumn;
Zeile : TListItem;
implementation
{$R *.dfm}
//HotKeys in Datei speichern
procedure WriteSettings();
var
i: Integer;
Section:
String;
begin
with TIniFile.Create(ChangeFileExt(ParamStr(0), '
.ini')
do
begin
for i := 0
to ListView1.Items.Count -1
do
begin
Section := Format('
Zeile_%d', [i]);
WriteString(Section, '
Name', ListView1.Items[i].Caption);
WriteString(Section, '
Aktion', ListView1.Items[i].SubItems[0]);
WriteString(Section, '
Tasten', ListView1.Items[i].subItems[1]);
end;
Free;
end;
end;
// Auf die HotKeys reagieren
procedure TForm1.WMHotKey(
var msg: TMessage);
begin
Case msg.WParam
of
01: ShowMessage('
F1');
02: ShowMessage('
F2');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// HotKeys registrieren
RegisterHotKey(
Handle,01,0,vk_F1);
RegisterHotKey(
Handle,02,0,vk_F2);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
// HotKeys wieder freigeben
UnregisterHotKey(
Handle,01);
UnregisterHotKey(
Handle,02);
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
//Form bzw Image verschiebbar machen
ReleaseCapture;
Form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;
procedure TForm1.ImageButton1Click(Sender: TObject);
begin
Application.Terminate;
end;
procedure TForm1.ImageButton2Click(Sender: TObject);
begin
Application.Minimize;
end;
procedure TForm1.ImageButton4Click(Sender: TObject);
begin
if Application.MessageBox('
Wenn Sie MultiKey beenden, stehen Ihnen die HotKeys nicht mehr zur Verfügung !' + #13 + '
Sind Sie sicher dass sie das Programm beenden wollen?','
Information',MB_ICONQUESTION
or MB_YESNO) = ID_YES
then Application.Terminate;
end;
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if Application.MessageBox('
Wenn Sie MultiKey beenden, stehen Ihnen die HotKeys nicht mehr zur Verfügung !' + #13 + '
Sind Sie sicher dass sie das Programm beenden wollen?','
Information',MB_ICONQUESTION
or MB_YESNO) = ID_YES
then
CanClose := True
else
CanClose := False;
end;
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
TListView(Sender).Selected:=TListView(Sender).GetItemAt(5,Y);
end;
procedure TForm1.ImageButton6Click(Sender: TObject);
begin
ListView1.Columns.Clear;
// Spalten löschen
// Spalte 0 erzeugen
Spalte := ListView1.Columns.Add;
Spalte.Caption := '
Name';
Spalte.Width := 97;
// Spalte 1 erzeugen
Spalte := ListView1.Columns.Add;
Spalte.Caption := '
Aktion';
Spalte.Width := 170;
// Spalte 2 erzeugen
Spalte := ListView1.Columns.Add;
Spalte.Caption := '
Tasten';
Spalte.Width := 100;
// Zeile 1 erzeugen
Zeile := ListView1.Items.Add;
// Neue Zeile
Zeile.Caption := Bezeichnung.Text;
// Spalte 0
Zeile.SubItems.Add(Typ.Text);
// Spalte 1 (Alles ausser Spalte 0 sind SubItems)
Zeile.SubItems.Add(Tasten.Text);
Tasten.SetFocus;
end;
procedure TForm1.ImageButton9Click(Sender: TObject);
begin
// Datei / Aktion lokalisieren...
If OpenDialog1.Execute
then
begin
offnen.Text := OpenDialog1.FileName;
end
end;
end.