Как установить свойство ColorSchemeName для ленты DevExpress? - PullRequest
0 голосов
/ 24 июля 2011

Я использую DevExpress DxRibbon элемент управления, и когда я изменяю свойство ColorSchemeName на Seven, оно не работает, и мой стиль ленты всегда Blue.почему?

Ответы [ 2 ]

3 голосов
/ 14 октября 2011

Чувак, у меня недавно была та же самая проблема с Лентой, и я нашел ответ, вы должны включить dxSkinsdxRibbonPainter unit only и fun.

Я давно заметил, что Embarcadero и его партнерам не хватает дополнительной информации о своих продуктах, и это одна из причин, почему Delphi, к сожалению, имеет небольшую долю рынка. Пример: Сколько книг вы найдете о Delphi, RADPHP или Prisma по сравнению с PHP или Rubby?

1 голос
/ 25 июля 2011

Сначала убедитесь, что dxSkinsdxBarPainter находится в предложении использования. Но, пожалуй, самый важный момент - убедиться, что соответствующий модуль скина находится в предложении использования - в данном случае dxSkinSeven. Затем просто установите свойство ColorSchemeName. Насколько я понимаю, Seven - это всего лишь облегченная версия Blue, так что вы уверены, что она на самом деле не изменилась?

Edit: ОК - образец:

Создать новый проект форм VCL. В коде для формы 1 заменить следующим:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxGraphics, cxControls, cxLookAndFeels, cxLookAndFeelPainters,
  dxSkinsCore, dxSkinBlue, dxSkinCaramel, dxSkinDarkRoom, dxSkinFoggy,
  dxSkiniMaginary, dxSkinLilian, dxSkinOffice2007Black, dxSkinOffice2007Blue,
  dxSkinOffice2007Green, dxSkinOffice2007Pink, dxSkinOffice2007Silver,
  dxSkinOffice2010Black, dxSkinOffice2010Blue, dxSkinOffice2010Silver,
  dxSkinSeven, dxSkinSharp, dxSkinSpringTime, dxSkinStardust, dxSkinSummer2008,
  dxSkinXmas2008Blue, dxSkinsdxRibbonPainter, dxStatusBar, dxRibbonStatusBar,
  cxClasses, dxRibbon, dxSkinsdxBarPainter, dxBar;

type
  TForm1 = class(TForm)
  private
    ribbon1: TdxRibbon;
    tab1: TdxRibbonTab;

    barManager1: TdxBarManager;
    bar1: TdxBar;
    btn1: TdxBarButton;
    btn2: TdxBarButton;
    btn3: TdxBarButton;

    procedure SetupBarManager;
    procedure SetupRibbon;
    procedure dxBarButtonClick(Sender: TObject);
  protected
    procedure Loaded; override;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Loaded;
begin
  inherited;

  SetupBarManager;
  SetupRibbon;
end;

procedure TForm1.SetupBarManager;
begin
  barManager1 := TdxBarManager.Create(Self);
  btn1 := TdxBarButton.Create(Self);
  btn2 := TdxBarButton.Create(Self);
  btn3 := TdxBarButton.Create(Self);

  with barManager1 do
  begin
    Name := 'barManager1';
    Categories.Clear;
    Categories.Add('Default');
  end;

  bar1 := barManager1.Bars.Add;
  with bar1 do begin
    Name := 'bar1';
    Visible := True;
    with ItemLinks.Add do
    begin
      Visible := True;
      Item := btn1;
    end;
    with ItemLinks.Add do
    begin
      Visible := True;
      Item := btn2;
    end;
    with ItemLinks.Add do begin
      Visible := True;
      Item := btn3;
    end;
  end;

  with btn1 do begin
    Name := 'btn1';
    Caption := 'Seven';
    Category := 0;
    Visible := ivAlways;
    OnClick := dxBarButtonClick;
  end;
  with btn2 do begin
    Name := 'btn2';
    Caption := 'Springtime';
    Category := 0;
    Visible := ivAlways;
    OnClick := dxBarButtonClick;
  end;
  with btn3 do begin
    Name := 'btn3';
    Caption := 'Blue';
    Category := 0;
    Visible := ivAlways;
    OnClick := dxBarButtonClick;
  end;
end;

procedure TForm1.SetupRibbon;
begin
  ribbon1 := TdxRibbon.Create(Self);

  with ribbon1 do begin
    Name := 'ribbon';
    Parent := Self;
    Left := 0;
    Top := 0;
    Height := 150;
    BarManager := barManager1;
    ColorSchemeName := 'Lilian';
    TabOrder := 0;
    TabStop := False;
  end;

  tab1 := ribbon1.Tabs.Add;
  with tab1 do begin
    Name := 'tab1';
    Ribbon := ribbon1;
    Visible := true;
  end;
  tab1.AddToolBar(bar1);
end;

procedure TForm1.dxBarButtonClick(Sender: TObject);
begin
  if (Sender is TdxBarButton) then
    ribbon1.ColorSchemeName := TdxBarButton(Sender).Caption;
end;

end.

У меня работает, как говорится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...