Мой DELPHI – Программирование

Всё для программера

Как сделать клавишу-акселератор (keyboard shortcut)

Вопрос:
Как сделать клавишу-акселератор (keyboard shortcut) компонету у которого нет заголовка?

Ответ:

Возможный вариант – присвоить
ссылку на этот компонент свойству FocusControl TLabel’а. В примере используется
невидимый Label для создания “быстрой” клавиши (Alt+M) компонента Memo. Чтобы
использовать пример, разместите на форме компонет TMemo, Label и несколько других
компонентов, которые могут принимать фокус ввода. Запустите программу, перевидите
фокус ввода куда-нибудь вне Memo и нажмите Alt+M – фокус ввода вернется в Memo. Прочитать остальную часть записи »

Можно ли сделать так – одна форма показывает другую и остается позади нее

Вопрос:
Можно ли сделать так - одна форма показывает другую и остается позади нее, но фокус
ввода не переходит к новой форме, а остается у старой?
Ответ:
В примере показывается не автосоздаваемая (non auto-created) форма, но фокус ввода ей
не передается.

Пример:

uses Unit2;

procedure TForm1.Button1Click(Sender: TObject);
begin
	Form2 := TForm2.Create(Application);
	Form2.Visible := FALSE;
	ShowWindow(Form2.Handle, SW_SHOWNA);
end;

Как “заставить” форму не разворачиваться из иконки?

Как “заставить” форму не разворачиваться из иконки?

Для этого необходимо перехватить сообщение “WM_QUERYOPEN”. Для этого необходимо
объявить соответствующую процедуру в private-области.


{ объявление процедуры в классе TMainForm }
procedure WMQueryOpen(var Msg: TWMQueryOpen); message WM_QUERYOPEN;
 

{ ... и ее реализация }
procedure TMainForm.WMQueryOpen(var Msg: TWMQueryOpen);
begin
  Msg.Result := 0;
end;