[Delphi] Раскрытие скрытой формы комбинацией клавиш

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Lotrein, 17 Mar 2012.

  1. Lotrein

    Lotrein New Member

    Joined:
    13 Dec 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Добавил в программу TMainMenu, одна кнопка на ней скрывает форму, другая кнопка должна форму снова показывать. Каждой кнопке я присвоил shorcut, но после скрытия формы она не хочет раскрываться указанной комбинацией.


    Как добиться того, что после сворачивания я смог снова вызвать окно?
     
  2. DooD

    DooD Elder - Старейшина

    Joined:
    30 Sep 2010
    Messages:
    1,168
    Likes Received:
    442
    Reputations:
    288
    назначь shortcut через RegisterHotKey
     
  3. Lotrein

    Lotrein New Member

    Joined:
    13 Dec 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Как? Я еще новичок.
     
  4. Goodwin_

    Goodwin_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    61
    Likes Received:
    6
    Reputations:
    0
    Code:
    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
      private
      id1: Integer;
      procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.WMHotKey(var Msg: TWMHotKey);
    begin
      if Msg.HotKey = id1 then
        ShowWindow(Form1.Handle,sw_show);
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    id1 := GlobalAddAtom('Hotkey1');
    RegisterHotKey(Handle, id1, 2, $41);
    end;
    
    end.
    RegisterHotKey:
    1 аргумент - handle твоей формы
    2 - идентификатор
    3 - 2 это control в цифрах :) ( alt - 1, shift - 4, win - 8)
    4 - $41 - hex-значение буквы А.
    т.е. по нажатию ctrl-a у тебя будет появляться форма.

    вообще конечно такие элементарные вещи нужно учиться гуглить даже если ты не умеешь
     
  5. Lotrein

    Lotrein New Member

    Joined:
    13 Dec 2011
    Messages:
    13
    Likes Received:
    0
    Reputations:
    0
    Спасибо, просто много дел параллельных, даже чай сделать не успеваю Т_Т