Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Создание кастомизированного `TPopupMenu` с вертикальной линией в Delphi: руководство и примеры

Delphi , Компоненты и Классы , Меню

Создание кастомизированного 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. Установим цвет линии и параметры рисования.

// Добавление вертикальной линии
MoveTo(ARect.left + 25, ARect.Top + 3);
LineTo(ARect.left + 25, ARect.Bottom + 3);

Добавим эти строки кода в обработчик OnDrawItem после рисования иконки и перед текстом.

Шаг 4: Компиляция и проверка результата

После внесения всех изменений, скомпилируйте проект и проверьте, что вертикальная линия отображается между иконками и текстом элементов меню.

Заключение

Вы успешно создали кастомизированное контекстное меню с вертикальной линией, используя возможности настройки внешнего вида элементов TPopupMenu в Delphi. Это руководство и примеры кода помогут вам в дальнейшем создании стильных и удобных интерфейсов для ваших приложений.

Не забудьте, что для полноценной кастомизации интерфейса, возможно, потребуется использование дополнительных инструментов и стилей, поддерживаемых VCL.

Создано по материалам из источника по ссылке.

Статья о создании настраиваемого контекстного меню с вертикальной линией в среде разработки Delphi, включая пошаговое руководство и примеры кода.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Меню ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 15:52:33/0.0035789012908936/0