Пятница, 03.05.2024, 10:01
Приветствую Вас Гость
Меню сайта


Копилка для дальнейшего развития ресурса.
 
Форма входа
Интересное
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Программирование на Delphi.

Программирование

Главная » FAQ

// Поверх всех окон
procedure TForm1.Button1Click(Sender: TObject);
begin
  SetWindowPos( Handle, HWND_TOPMOST, Left, Top, Width, Height,
  SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE );
end;

// Отменить
procedure TForm1.Button1Click(Sender: TObject);
begin
  SetWindowPos( Handle, HWND_NOTOPMOST, Left, Top, Width, Height,
  SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE );
end;



// 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;



// Способ первый

var
  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

  TForm1 = class(TForm)
  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

  TForm1 = class(TForm)
  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;