Subversion Repositories delphiutils

Rev

Rev 59 | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls, ExtCtrls, QuerySystemMenu, Menus;
  8.  
  9. type
  10.   TMainForm = class(TForm)
  11.     CheckBox1: TCheckBox;
  12.     Timer1: TTimer;
  13.     Label1: TLabel;
  14.     MainMenu1: TMainMenu;
  15.     N12231: TMenuItem;
  16.     N123124235425541: TMenuItem;
  17.     N45koiaejfunsdkf1: TMenuItem;
  18.     erlknf1: TMenuItem;
  19.     fkjn1: TMenuItem;
  20.     fe1: TMenuItem;
  21.     flmnakwjfnajwrngl1: TMenuItem;
  22.     ewfkjanwrgboinginrginaikrwngka1: TMenuItem;
  23.     asdasdjknsafjnaskfnakjf1: TMenuItem;
  24.     askfnjakfnkjasndfkjandf1: TMenuItem;
  25.     fkjafnjkasndf1: TMenuItem;
  26.     Button1: TButton;
  27.     Edit1: TEdit;
  28.     Timer2: TTimer;
  29.     procedure FormCreate(Sender: TObject);
  30.     procedure FormDestroy(Sender: TObject);
  31.     procedure Timer1Timer(Sender: TObject);
  32.     procedure SysMenuOpened(Sender: TObject);
  33.     procedure SysMenuClosed(Sender: TObject);
  34.     procedure Button1Click(Sender: TObject);
  35.     procedure Timer2Timer(Sender: TObject);
  36.   private
  37.     x: TQuerySystemMenu;
  38.   end;
  39.  
  40. var
  41.   MainForm: TMainForm;
  42.  
  43. implementation
  44.  
  45. {$R *.dfm}
  46.  
  47. procedure TMainForm.SysMenuOpened(Sender: TObject);
  48. begin
  49.   CheckBox1.Checked := true;
  50.   Label1.Caption := TimeToStr(Now());
  51. end;
  52.  
  53. procedure TMainForm.SysMenuClosed(Sender: TObject);
  54. begin
  55.   CheckBox1.Checked := false;
  56.   Label1.Caption := TimeToStr(Now());
  57. end;
  58.  
  59. procedure TMainForm.Button1Click(Sender: TObject);
  60. begin
  61. timer1.Enabled := true;
  62. end;
  63.  
  64. procedure TMainForm.FormCreate(Sender: TObject);
  65. begin
  66.   x := TQuerySystemMenu.Create(Handle);
  67.   x.OnSystemMenuOpen := SysMenuOpened;
  68.   x.OnSystemMenuClose := SysMenuClosed;
  69. end;
  70.  
  71. procedure TMainForm.FormDestroy(Sender: TObject);
  72. begin
  73.   x.Destroy;
  74. end;
  75.  
  76. // Bug: Traybar-Menu...
  77. // Bug: Traybar-Icon-Popup...
  78. // Nicht beachtet: Shortcuts werden versehentlich gedrückt?
  79. // (System-Shortcuts, Windows-Programme-Shortcuts (*.lnk), oder MainMenu Shortcuts?
  80.  
  81. procedure TMainForm.Timer1Timer(Sender: TObject);
  82. begin
  83.   // CheckBox1.Checked := x.IsSystemMenuOpened;
  84.  Keybd_Event(Ord('S'),   1, 0, 0);
  85.    Keybd_Event(Ord('S'), 1, KEYEVENTF_KEYUP, 0);
  86. end;
  87.  
  88. // WARNUNG: FOCUSED ist nicht gegeben bei
  89. // Popups (der eigenen VCL), Menüs (system, mainmenu...), etc!
  90.  
  91. procedure TMainForm.Timer2Timer(Sender: TObject);
  92. begin
  93. if   Edit1.Focused then Edit1.Color := clred
  94. else edit1.Color := clwhite;
  95. end;
  96.  
  97. end.
  98.