FAQ VCL
Компоненты\DevExpress\dxRibbon

:: Меню ::
:: На главную ::
:: FAQ ::
:: Заметки ::
:: Практика ::
:: Win API ::
:: Проекты ::
:: Скачать ::
:: Секреты ::
:: Ссылки ::

:: Сервис ::
:: Написать ::

:: MVP ::

:: RSS ::

Яндекс.Метрика

Как подготовить форму к работе с dxRibbon?

interface

uses
  dxRibbonForm;

type
  TForm1 = class(TdxRibbonForm)
  end;


Как запретить dxRibbon скрываться при уменьшении размеров формы?

uses
  dxRibbon;

procedure TForm1.FormCreate(Sender: TObject);
begin
  dxRibbonOwnerMinimalWidth := 0;
  dxRibbonOwnerMinimalHeight := 0;
  // или немного иначе
  PInteger(@dxRibbonOwnerMinimalWidth)^ := 0;
  PInteger(@dxRibbonOwnerMinimalHeight)^ := 0;
end;


Как локализовать dxRibbon?

uses
  dxCore, dxBarStrs;
 
{$R *.dfm}
 
initialization
  cxSetResourceString(@dxSBAR_CUSTOMIZERIBBONQAT, 'Настройка Панели Быстрого Доступа...');
  cxSetResourceString(@dxSBAR_SHOWBELOWRIBBON, 'Показать панель быстрого доступа под лентой');
  cxSetResourceString(@dxSBAR_SHOWABOVERIBBON, 'Показать панель быстрого доступа над лентой');
  cxSetResourceString(@dxSBAR_MINIMIZERIBBON, 'Свернуть ленту');
  cxSetResourceString(@dxSBAR_CUSTOMIZERIBBON, 'Настройка ленты...');


Как скрыть кнопку приложения в заголовке?

procedure TForm1.FormCreate(Sender: TObject);
begin
  dxRibbon.ApplicationButton.Visible := btnShowAppButton.Down;
end;


Как скрыть заголовки вкладок?

procedure TForm1.FormCreate(Sender: TObject);
begin
  dxRibbon.ShowTabHeaders := False;
end;


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

procedure TForm1.FormCreate(Sender: TObject);
begin
  dxRibbon.SupportNonClientDrawing := True;
end;


Как отключить сворачивание ленты по двойному клику на любой вкладке?

procedure TForm1.FormCreate(Sender: TObject);
begin
  dxRibbon.MinimizeOnTabDblClick := False;
end;


Как скрыть дополнительную кнопку сворачивания/разворачивания ленты (с правой стороны)?

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Данная кнопка доступна в стилях MS Office 2010 и старше
  dxRibbon.ShowMinimizeButton := False;
end;


Как узнать количество вкладок на ленте?

// Способ первый
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(dxRibbon1.TabCount));
end;

// Способ второй
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(dxRibbon1.Tabs.Count));
end;


Как перебрать все контролы на ленте?

procedure TForm1.Button1Click(Sender: TObject);
var
  Tab, Group, Link, Item: Integer;
  CurrentTab: TdxRibbonTab;
  CurrentGroup: TdxRibbonTabGroup;
  CurrentItem: TdxBarItem;
begin
  for Tab := 0 to dxRibbon1.TabCount - 1 do
  begin
    CurrentTab := dxRibbon1.Tabs[Tab];
    if Assigned(CurrentTab) {and CurrentTab.Visible} then
      for Group := 0 to CurrentTab.Groups.Count - 1 do
      begin
        CurrentGroup := CurrentTab.Groups[Group];
        if Assigned(CurrentGroup) and CurrentGroup.Visible and (CurrentGroup.ToolBar.ItemLinks.Count > 0) then
          for Item := 0 to CurrentGroup.ToolBar.ItemLinks.Count - 1 do
            if Assigned(CurrentGroup.ToolBar.ItemLinks[Item].Control) then
            begin
              CurrentItem := CurrentGroup.ToolBar.ItemLinks[Item].Control.Item;
              if Assigned(CurrentItem) then
                ShowMessage(CurrentItem.Caption);
            end;
      end;
  end;
end;

При использовании материала - ссылка на сайт обязательна