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

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

Как сделать прямоугольник для выделения части картинки для редактирования?

Вопрос:
Как сделать прямоугольник для выделения части картинки для редактирования?

Ответ:

Самый простой способ -
воспользоваться функцией Windows API DrawFocusRect. Функция DrawFocusRect использует
операцию XOR при рисовании – таким образом вывод прямоугольника дважды с одними
и теми же координатами стирает прямоугольник, и прямоугольник всегда будет виден,
на фоне какого бы цвета он не выводился. Прочитать остальную часть записи »

Как перемещать компонент мышкой во время работы программы “runtime”?

Вопрос:
  Как перемещать компонент мышкой во время работы программы "runtime"?

Ответ:

Перехватить событие OnMouseDown,
запомнить x и y координты курсора мыши. Отслеживать движение мыши по событию
OnMouseMove и перемещать компонент вслед за курсором мыши до тех пор пока не
произойдет событие OnMouseUp. В примере показано перемещение компонента TButton.
Перемещение начинается, когда пользователь “берет” TButton мышью, удерживая
нажатой клавишу “Сontrol”. Прочитать остальную часть записи »

Как в компоненте TMemo перехватить нажатие Ctrl-V

Вопрос:

Как в компоненте TMemo перехватить нажатие Ctrl-V и вставить специальный текст не из буфера обмена
(clipboard)?

Ответ:
См. пример.
Пример:

uses ClipBrd;

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
	if ((Key = ord('V')) and (ssCtrl in Shift)) then
		begin
			if Clipboard.HasFormat(CF_TEXT) then
				ClipBoard.Clear;
			Memo1.SelText := 'Delphi is RAD!';
			key := 0;
		end;
end;

Как перехватить нажатия функциональных клавиш и стрелок?

Вопрос:
Как перехватить нажатия функциональных клавиш и стрелок?

Ответ:

Проверяйте значение переменной
key на равенство VK_RIGHT, VK_LEFT, VK_F1 и т.д. на событии KeyDown формы.

Пример:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
	if Key = VK_RIGHT then
		Form1.Caption := 'Right';
	if Key = VK_F1 then
		Form1.Caption := 'F1';
end;