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

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

Можно ли использовать иконку как картинку на кнопке TSpeedButton?

Вопрос:
Можно ли использовать иконку как картинку на кнопке TSpeedButton?
Ответ:
Можно. См. пример.

Пример:

uses ShellApi;

procedure TForm1.FormShow(Sender: TObject);
var
	Icon: TIcon;
begin
	Icon := TIcon.Create;
	Icon.Handle := ExtractIcon(0,'C:\WINDOWS\NOTEPAD.EXE',1);
	SpeedButton1.Glyph.Width := Icon.Width;
	SpeedButton1.Glyph.Height := Icon.Height;
	SpeedButton1.Glyph.Canvas.Draw(0, 0, Icon);
	Icon.Free;
end;

При попытке использовать метод TCanvas.StretchDraw

Вопрос:
При попытке использовать метод TCanvas.StretchDraw чтобы нарисовать иконку
увеличенной ее размер не изменяется. Что делать?
Ответ:
Иконки всегда рисуются размером принятым в системе по умолчанию. Чтобы показать
увеличенный вид иконки скоприуйте ее на bitmap, а зате используйте метод
TCanvas.StretchDraw. Прочитать остальную часть записи »

Как ограничить длинну текста, вводимого в TEdit

Вопрос:
Как ограничить длинну текста, вводимого в TEdit, так чтобы ширина текста не превышала
ширину TEdit'а?

Ответ:

В примере приведено два
способа ограничить длинну текста в TEdit так чтобы она не превышала ширину клиентской
области окна TEdit’а и не появлялась прокрутка текста. Первый способ устанавливает
свойство TEdit’а MaxLength равным числу букв “W”, которые поместятся в TEdit.
“W” выбрана потому, что является, наверное, самой широкой буквой в любом шрифте.
Этот метод сносно работает для шрифтов с фиксированной шириной букв, но для
шрифтов с переменной шириной букв вряд ли сгодится. Второй способ перхватывает
событие KeyPress TEdit’а и измеряет ширину уже введенного текста и ширину нового
символа. Если ширина больше чем клиентская область TEdit’а новый символ отбрасывается
и вызывается MessageBeep. Прочитать остальную часть записи »

Вместо печати графики я хочу использовать резидентный шрифт принтера. Как?

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

Ответ:

Используте функцию Windows
API – GetStockObject() чтобы получить дескриптор (handle) шрифта по умолчанию
устройства (DEVICE_DEFAULT_FONT) и передайте его Printer.Font.Handle. Прочитать остальную часть записи »

Как сделать картинки из TImageList прозрачными?

Вопрос:
Я загружаю TImageList динамически. Как сделать картинки из TImageList прозрачными?
Ответ:
См. ответ. Прочитать остальную часть записи »