Создание кастомизированного TPopupMenu с вертикальной линией в Delphi: руководство и примеры
В данной статье мы рассмотрим, как можно создать настраиваемое контекстное меню TPopupMenu в Delphi, которое будет содержать вертикальную линию между иконками и текстом элементов меню. Это позволит достичь современного и стильного внешнего вида интерфейса вашего приложения.
Шаг 1: Настройка фонового цвета и шрифта элементов меню
Для начала, установим фоновый цвет и шрифт элементов меню, чтобы они соответствовали желаемому стилю. В обработчике события OnDrawItem установим белый фон и шрифт Noto Sans размером 8 пикселей.
procedure TForm1.pmiProjectCopyDrawItem(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; Selected: Boolean);
var
bt: TBitmap;
begin
bt := TBitmap.Create;
with TMenuItem(Sender) do
begin
with ACanvas do
begin
Brush.Color := clWhite;
FillRect(ARect);
Font.Color := Selected ? $006C4E1F : $00757575;
Font.Size := 8;
Font.Name := 'Noto Sans';
// Остальная часть кода...
end;
end;
end;
Шаг 2: Добавление иконок и текста элементов меню
Далее, добавим иконки и текст элементов меню, учитывая, что иконки разделены вертикальной линией от текста.
// ...
if Caption <> '-' then
begin
ImageList1.GetBitmap(ImageIndex, bt);
Draw(ARect.left + 3, ARect.Top + 3, bt);
ARect.left := ARect.left + 25;
// Добавление вертикальной линии (шаг 3)
// ...
DrawText(ACanvas.Handle, PChar(Caption), Length(Caption), ARect,
DT_SINGLELINE or DT_VCENTER);
// ...
end;
Шаг 3: Добавление вертикальной линии
Чтобы добавить вертикальную линию, используем функционал MoveTo и LineTo объекта Pen в ACanvas. Установим цвет линии и параметры рисования.
Добавим эти строки кода в обработчик OnDrawItem после рисования иконки и перед текстом.
Шаг 4: Компиляция и проверка результата
После внесения всех изменений, скомпилируйте проект и проверьте, что вертикальная линия отображается между иконками и текстом элементов меню.
Заключение
Вы успешно создали кастомизированное контекстное меню с вертикальной линией, используя возможности настройки внешнего вида элементов TPopupMenu в Delphi. Это руководство и примеры кода помогут вам в дальнейшем создании стильных и удобных интерфейсов для ваших приложений.
Не забудьте, что для полноценной кастомизации интерфейса, возможно, потребуется использование дополнительных инструментов и стилей, поддерживаемых VCL.
Статья о создании настраиваемого контекстного меню с вертикальной линией в среде разработки Delphi, включая пошаговое руководство и примеры кода.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.