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

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

Почему при изменении цвета шрифта в StatusBar’s он (шрифт) не меняется?

Вопрос:
Почему при изменении цвета шрифта в StatusBar's он (шрифт) не меняется?

Ответ:

Status bar (строка состояния)
- стандартный элемент управления Windows и цвет его шрифта задается через Control
Panel (константа clBtnText). Этот цвет по умолчанию черный и может меняться
при выборе пользователем той или иной цветовой схемы. У компонента ТStatusBar
и его панелей есть возможность “owner-draw” – программной перерисовки, которая
позволяет выводить на панель текст любого цвета. Измените свойство Style компонента
TStatusBar.Panels на OwnerDraw. Прочитать остальную часть записи »

Можно ли создать форму, которая получает дополнительные параметры в методе Сreate?

Вопрос:
Можно ли создать форму, которая получает дополнительные параметры в методе Сreate?
Ответ:
Просто замените конструктор Create класса Вашей формы. Прочитать остальную часть записи »

Как запрограммировать undo?

Вопрос:
Как запрограммировать undo?

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

Memo1.Perform(EM_UNDO, 0, 0);

Если Вы хотите узнать, возможно ли выполнить операцию "Undo", проверьте "Undo status":

If Memo1.Perform(EM_CANUNDO, 0, 0) <> 0 then
begin
	{Undo is possible}
end;

Для выполнения "Redo" выполните "Undo" еще раз.

Как создать эквивалент TEdit

Вопрос:

Как создать эквивалент TEdit но только с выравниваением вводимого текста по центру или по правой стороне?

Ответ:

TEdit не поддерживает
выравниваение текста по центру и по правой стороне – лучше использовать компонент
TMemo. Вам понадобится запретить пользователю нажимать Enter, Ctrl-Enter и всевозможные
комбинации клавиш со стрелками, чтобы избежать появления нескольких сторк в
Memo. Этого можно добиться и просматривая содержимое текста в TMemo в поисках
кода возврата каретки (13) и перевода строки(10) на событиях TMemo Change и
KeyPress. Можно также заменять код возврата каретки на пробел – для того чтобы
позволять вставку из буфера обмена многострочного текста в виде одной строки. Прочитать остальную часть записи »

Как в компоненте 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;