Delphi: панель быстрого доступа к ленте - маленькие изображения не отображаются - PullRequest
0 голосов
/ 06 июля 2011

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

У меня есть список изображений с изображениями размером 16x16 пикселей, и когда я использую их как обычный список изображений, он не работает, просто показывает заголовок меню.Если я переключаюсь на использование большого списка изображений, он работает, но добавляет дополнительные отступы и выглядит плохо.

enter image description here

Есть идеи, что происходит?Какой из многочисленных параметров необходимо настроить, чтобы заставить эту вещь работать так, как ожидалось?

Ответы [ 2 ]

3 голосов
/ 07 июля 2011

В Delphi 2010 и XE выполняются следующие шаги:

  1. добавить TRibbon, ImageList и ActionManager в пустую форму. Свяжите ImageList с ActionManager.
  2. добавьте несколько фиктивных действий, таких как Edit-> Copy, которые автоматически получат изображение для тестирования.
  3. щелкните правой кнопкой мыши, добавьте QuickAccessToolbar, затем щелкните правой кнопкой мыши и добавьте меню приложений.
  4. установить Form.DoubleBuffered истину и Form.GlassFrame.Enabled истину.

  5. Дважды щелкните ActionManager. Откроется диалоговое окно свойств диспетчера действий. Перейдите на вкладку «Панели инструментов» и щелкните или дважды щелкните «RibbonQuickAccessToolbar1», чтобы сфокусироваться на этой панели инструментов. Этот шаг важен, кажется, что трудно добавить элементы, если вы не сделаете это.

  6. В диалоговом окне свойств диспетчера действий перейдите на страницу «Действия» и перетащите действие, например «Копировать / вставить», в котором изображение отображается в списке действий, в выбранную область формы.

  7. Кажется, проще добавить второй элемент с изображением в QAT, чем добавить начальный.

Дайте мне знать, если это сработает для вас в 2009 году.

Вот содержимое DFM МИНУС СОДЕРЖИМОГО СПИСКА ИЗОБРАЖЕНИЙ:

object Form5: TForm5
  Left = 0
  Top = 0
  Caption = 'Form5'
  ClientHeight = 337
  ClientWidth = 527
  Color = clBtnFace
  DoubleBuffered = True
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  GlassFrame.Enabled = True
  OldCreateOrder = False
  OnCreate = FormCreate
  PixelsPerInch = 96
  TextHeight = 13
  object Ribbon1: TRibbon
    Left = 0
    Top = 0
    Width = 527
    Height = 143
    ActionManager = ActionManager1
    ApplicationMenu.Menu = RibbonApplicationMenuBar1
    Caption = 'Ribbon1'
    QuickAccessToolbar.ActionBar = RibbonQuickAccessToolbar1
    ExplicitLeft = 272
    ExplicitTop = 120
    ExplicitWidth = 0
    StyleName = 'Ribbon - Luna'
    object RibbonQuickAccessToolbar1: TRibbonQuickAccessToolbar
      Left = 49
      Top = 1
      Width = 99
      Height = 24
      ActionManager = ActionManager1
    end
    object RibbonApplicationMenuBar1: TRibbonApplicationMenuBar
      ActionManager = ActionManager1
      OptionItems = <>
      RecentItems = <>
    end
  end
  object ImageList1: TImageList
    Left = 288
    Top = 184
    Bitmap = {
      494C010105000800080010001000FFFFFFFFFF00FFFFFFFFFFFFFFFF424D3600
      ....
      }
  end
  object ActionManager1: TActionManager
    ActionBars = <
      item
        Items = <
          item
            Action = EditCopy1
            ImageIndex = 1
            ShowCaption = False
            ShortCut = 16451
          end
          item
            Action = EditCopy1
            ImageIndex = 1
            ShowCaption = False
            ShortCut = 16451
          end
          item
            Action = EditPaste1
            ImageIndex = 2
            ShowCaption = False
            ShortCut = 16470
          end>
        ActionBar = RibbonQuickAccessToolbar1
        AutoSize = False
      end
      item
        Items = <
          item
            ChangesAllowed = [caModify]
            Items = <
              item
                Action = EditCopy1
                ImageIndex = 1
                ShortCut = 16451
              end
              item
                Caption = 'ActionClientItem1'
              end>
            Caption = 'ActionClientItem0'
            KeyTip = 'F'
          end>
        ActionBar = RibbonApplicationMenuBar1
        AutoSize = False
      end>
    Images = ImageList1
    Left = 288
    Top = 120
    StyleName = 'Ribbon - Luna'
    object EditCut1: TEditCut
      Category = 'Edit'
      Caption = 'Cu&t'
      Hint = 'Cut|Cuts the selection and puts it on the Clipboard'
      ImageIndex = 0
      ShortCut = 16472
    end
    object EditCopy1: TEditCopy
      Category = 'Edit'
      Caption = '&Copy'
      Hint = 'Copy|Copies the selection and puts it on the Clipboard'
      ImageIndex = 1
      ShortCut = 16451
    end
    object EditPaste1: TEditPaste
      Category = 'Edit'
      Caption = '&Paste'
      Hint = 'Paste|Inserts Clipboard contents'
      ImageIndex = 2
      ShortCut = 16470
    end
    object EditSelectAll1: TEditSelectAll
      Category = 'Edit'
      Caption = 'Select &All'
      Hint = 'Select All|Selects the entire document'
      ShortCut = 16449
    end
    object EditUndo1: TEditUndo
      Category = 'Edit'
      Caption = '&Undo'
      Hint = 'Undo|Reverts the last action'
      ImageIndex = 3
      ShortCut = 16474
    end
    object EditDelete1: TEditDelete
      Category = 'Edit'
      Caption = '&Delete'
      Hint = 'Delete|Erases the selection'
      ImageIndex = 4
      ShortCut = 46
    end
  end
end

Вот как это выглядит во время выполнения:

enter image description here

0 голосов
/ 07 июля 2011

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

Если вы не видите значки в списке, вы не увидите их в своем приложении.

...