Программирование
Главная » FAQ |
// Поверх всех окон |
// Timer1.Interval = 1 procedure TForm1.Timer1Timer(Sender: TObject); var KS: TKeyboardState; begin GetKeyboardState( KS ); if KS[020] and 1 = 1 then LabelCapsLock.Enabled := true else LabelCapsLock.Enabled := false; if KS[144] and 1 = 1 then LabelNumLock.Enabled := true else LabelNumLock.Enabled := false; if KS[145] and 1 = 1 then LabelScrollLock.Enabled := true else LabelScrollLock.Enabled := false; SetKeyboardState( KS ); end; |
// Способ первый Form1: TForm1; Flash: bool = false; procedure TForm1.Timer1Timer(Sender: TObject); begin // Чтобы мигал заголовок формы FlashWindow( Form1.Handle, Flash ); // Чтобы мигала пиктограмма в TaskBar FlashWindow( Application.Handle, Flash ); Flash := not Flash; end; // Способ второй procedure FlashWnd( h: HWND; active: boolean ); var fl: TFlashWInfo; begin fl.cbSize := sizeof( TFlashWInfo ); fl.uCount := INFINITE; // Или необходимое количество повторений fl.dwTimeout := 500; // Интервал fl.hwnd := h; if active then fl.dwFlags := FLASHW_ALL else fl.dwFlags := FLASHW_STOP; FlashWindowEx( fl ); end; |
type Button1: TButton; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } procedure AppIdle(Sender: TObject; var Done: Boolean); end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnIdle := AppIdle; end; procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean); begin if GetAsyncKeyState( VK_SNAPSHOT ) <> 0 then Form1.Caption := 'PrintScreen нажата !'; Done := True; end; |
type private { Private declarations } procedure CMDialogKey( var msg: TCMDialogKey ); message CM_DIALOGKEY; public { Public declarations } end; procedure TForm1.CMDialogKey(var msg: TCMDialogKey); begin if msg.Charcode <> VK_TAB then inherited; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if Key = VK_TAB then Form1.Caption := 'Клавиша Tab нажата!'; end; |