Последние записи
- Перенести программу из Delphi в Lazarus
- Определить текущую ОС
- Автоматическая смена языка (раскладки клавиатуры)
- Сравнение языков на массивах. Часть 2
- wprintf как напечатать кириллицу
- Взаимодействие через командную строку
- Сравнение языков на массивах. Часть 1
- Сравнение языков по скорости
- Чтение огромных xml-файлов
- Как в Python+Selenium webdriver открыть новую вкладку в уже открытом браузере?
Интенсив по Python: Работа с API и фреймворками 24-26 ИЮНЯ 2022. Знаете Python, но хотите расширить свои навыки?
Slurm подготовили для вас особенный продукт! Оставить заявку по ссылке - https://slurm.club/3MeqNEk
Online-курс Java с оплатой после трудоустройства. Каждый выпускник получает предложение о работе
И зарплату на 30% выше ожидаемой, подробнее на сайте академии, ссылка - ttps://clck.ru/fCrQw
25th
Июн
Отрисовка текста на Canvas с перекрытием букв друг друга
Имеется задача отрисовывать текст по выбранному шрифту на Image в определенном формате. При этом текст сразу отрисовываться сразу одной строкой не может, т.к. элементы строки содержат разный цвет, поэтому отрисовка текста происходит в цикле со смещением вправо.
Проблема возникает в том, что на выходе текст обрезается, т.к. по каким-то причинам некорректно рассчитывается его ширина. Особенно это проглядывается при выборе курсива — там вообще ширина получается идентичной, что и без курсива почему-то. Но и без курсива проблема имеется.
Упрощенный пример задачи:
procedure TForm2.Button1Click(Sender: TObject);
var
i, WidthShift: Integer;
str, delim: string;
Font: TFont;
Colors: TArray<TColor>;
begin
Font := TFont.Create;
Colors := TArray<TColor>.Create(clRed, clBlack, clGreen);
WidthShift := 10;
if FontDialog1.Execute then
begin
Font.Assign(FontDialog1.Font);
end;
Image1.Canvas.Brush.Color := clWhite;
Image1.Canvas.FillRect(Image1.Canvas.ClipRect);
Image1.Canvas.Font.Assign(Font);
delim := '/';
for i := 0 to 2 do
begin
str := '0';
if i <> 0 then
str := delim + str;
Image1.Canvas.Font.Color := Colors;
Image1.Canvas.TextOut(WidthShift, 100, str);
WidthShift := WidthShift + Image1.Canvas.TextWidth(str);
end;
Font.Free;
end;
В первом случае текст обычный и все равно обрезается. А во втором курсив — там вообще все плохо.
В качестве решения можно было бы рассчитывать какой-то промежуточный запас (относительно высоты шрифта или еще по какой-то зависимости) и добавлять его на каждой итерации, однако по условиям задачи пробелов быть не должно.
Подскажите, пожалуйста, как можно побороть данную проблему?
23rd
Ноя
Плавное перемещение Image больших размеров
Задача заключается в том, чтобы плавно перетаскивать достаточно большую (2000*2000 пикселей) картинку в jpg формате при зажатии ЛКМ. Как реализовать?
(читать всё…)
30th
Сен
Как отследить изменение Image в PictureBox
ka11n
Какое событие отвечает за изменение Image компонента PictureBox?
Есть событие BackgroundImageChanged, возникающее при изменении BackgroudImage. Думал есть аналог для Image
26th
Июн
Смена картинки через время
Pearl
Здравствуйте! Мне нужно сделать на сайте плавную смену картинок через определенное время. Нашел в интернете код смены картинок, но в нем не реализовано никакой плавности.
6th
Май
Движение image по нажатию стрелок на клавиатуре
как запрограммировать image что бы при нажатии стрелочки вверх он прыгнул а потом опустился на тоже место (читать всё…)
8th
Апр
Спрятать часть картинки в div
scalpel
Подскажите какие атрибуты могут решить задачу с дивами, надо так если изображение выходит за приделами дива просто спрятать кусок изображение и дивы что-бы остались в ряд по вертикаль что-бы следующие дивы с низу тоже были в один ряд.
7th
Авг
Перемещение массива Image
Как сделать, чтобы для 2 картинок была одна и та же функция, но разные номера image в зависимости от того,какой выделен? (читать всё…)
Облако меток
css реестр ассемблер timer SaveToFile ShellExecute программы массив советы word MySQL SQL ListView pos random компоненты дата LoadFromFile form база данных сеть html php RichEdit indy строки Win Api tstringlist Image мысли макросы Edit ListBox office C/C++ memo графика StringGrid canvas поиск файл Pascal форма Файлы интернет excel Microsoft Office Excel winapi журнал ПРОграммист DelphiКупить рекламу на сайте за 1000 руб
пишите сюда - alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
пеллетные котлы
Пеллетный котел Emtas
Наши форумы по программированию:
- Форум Web программирование (веб)
- Delphi форумы
- Форумы C (Си)
- Форум .NET Frameworks (точка нет фреймворки)
- Форум Java (джава)
- Форум низкоуровневое программирование
- Форум VBA (вба)
- Форум OpenGL
- Форум DirectX
- Форум CAD проектирование
- Форум по операционным системам
- Форум Software (Софт)
- Форум Hardware (Компьютерное железо)