Einzelnen Beitrag anzeigen

Benutzerbild von samson
samson

Registriert seit: 26. Aug 2003
Ort: Hövelhof Riege
105 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Keine Aktivierung der Form bei Aufruf über Tastenkombina

  Alt 12. Nov 2003, 13:03
Hallo,

So ich habs füge mal folgenden Code in deine Unit ein.

Typ für Hotkey:

Delphi-Quellcode:
type
  TWMHotkey = record
    Msg: Cardinal;
    idHotKey: Word;
    Modifiers: Integer;
    VirtKey: Integer;
  end;
Constante für den Key (zum aktivieren deiner Application);

Delphi-Quellcode:
const
  ID = $FF;
Tastenkürzel registrieren für diese Anwendung:
    procedure FormCreate(Sender: TObject); Neue Private procedure zum Bearbeiten des Shortcuts;
procedure WMHotKey(var Msg: TWMHotKey); Message WM_HOTKEY; Implementierung von FormCreate(...) und WMHotKey(...)
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  bolOK: longbool;
begin
  bolOK:=RegisterHotKey(self.Handle, ID, MOD_Alt+MOD_CONTROL+MOD_SHIFT, vk_escape);//Ord('Q')
end;

procedure TForm1.WMHotKey(Var Msg: TWMHotkey);
begin
  case Msg.IdHotKey of
    ID: begin Application.BringToFront; Windows.SetFocus(self.Handle); end;
    ID+1: caption:='es ist immer noch alles klar';
    // Abhängig von der ID wird entschieden, was getan werden soll.
  end;
  inherited;
end;
In diesem Fall habe ich jetzt einen ganz komischen HotKey ausprobiert. Ich denke das Du bestimmt einen einfacheren findest.

Dein Code müsste ungefähr so aussehen:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TWMHotkey = record
    Msg: Cardinal;
    idHotKey: Word;
    Modifiers: Integer;
    VirtKey: Integer;
  end;

const
  ID = $FF;

type
  TForm1 = class(TForm)
    GroupBox3: TGroupBox;
    Memo1: TMemo;
    BitBtn2: TBitBtn;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure WMHotKey(var Msg: TWMHotKey); Message WM_HOTKEY;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
  bolOK: longbool;
begin
  bolOK:=RegisterHotKey(self.Handle, ID, MOD_Alt+MOD_CONTROL+MOD_SHIFT, vk_escape);//Ord('Q')
end;

procedure TForm1.WMHotKey(Var Msg: TWMHotkey);
begin
  case Msg.IdHotKey of
    ID: begin Application.BringToFront; Windows.SetFocus(self.Handle); end;
    ID+1: caption:='es ist immer noch alles klar';
    // Abhängig von der ID wird entschieden, was getan werden soll.
  end;
  inherited;
end;


end.
Gruss


Samson.
Frank Gellermann
Wer Informationen hat, hat Macht. Wer Macht hat, hat Informationen!!!
  Mit Zitat antworten Zitat