📄 ebar2000demomain.pas
字号:
procedure dxBarManagerBarVisibleChange(Sender: TdxBarManager;
ABar: TdxBar);
procedure cbStretchGlyphsClick(Sender: TObject);
procedure rgStyleClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure cbShowCaptionsClick(Sender: TObject);
procedure cbHotImagesClick(Sender: TObject);
procedure cbDisabledImagesClick(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
procedure TrackBarChange(Sender: TObject);
private
{ Private declarations }
procedure UpdateColorItems(AButton, ADownButton, ACustomButton,
AItemButton: TdxBarLargeButton; APopupMenu: TdxBarPopupMenu);
procedure UpdateColorButtonGlyph(AButton: TdxBarLargeButton);
public
{ Public declarations }
FUpdateVisible : Boolean;
end;
var
EBar2000DemoMainForm: TEBar2000DemoMainForm;
implementation
uses EBar2000DemoAbout;
{$R *.DFM}
{$R windowsxp.res}
procedure TEBar2000DemoMainForm.cbStyleMeasureItem(Sender: TdxBarCustomCombo;
AIndex: Integer; var AHeight: Integer);
begin
AHeight := 35;
end;
procedure TEBar2000DemoMainForm.cbStyleDrawItem(Sender: TdxBarCustomCombo;
AIndex: Integer; ARect: TRect; AState: TOwnerDrawState);
begin
if Sender.DroppedDown then
with Sender.Canvas do
begin
StyleImages.Draw(Sender.Canvas, ARect.Left, ARect.Top, AIndex);
FrameRect(ARect);
InflateRect(ARect, -1, -1);
FrameRect(ARect);
end
else
Sender.Canvas.TextRect(ARect, ARect.Left + 1, ARect.Top, TdxBarCombo(Sender).Text);
end;
procedure TEBar2000DemoMainForm.FormCreate(Sender: TObject);
begin
dmCommonData.AboutFormClass := TEBar2000DemoAboutForm;
cbAddress.Items.Add(dxStartURL);
cbAddress.Items.Add(dxSupportURL);
TrackBarChange(tbStandard);
TrackBarChange(tbFormatting);
btnFontColor.Tag := clBlue;
UpdateColorItems(btnFontColor, btnDownFontColorItem, btnCustomFontColor, btnFontColorItem, FontColorPopupMenu);
btnHighlight.Tag := clYellow;
UpdateColorItems(btnHighlight, btnDownColorItem, btnCustomColor, btnColorItem, HightlightColorPopupMenu);
FUpdateVisible := True;
rgStyleClick(nil);
end;
procedure TEBar2000DemoMainForm.UpdateColorItems(AButton, ADownButton, ACustomButton, AItemButton: TdxBarLargeButton;
APopupMenu: TdxBarPopupMenu);
const
Colors: array [0..15] of TColor = (clBlack, clMaroon, clGreen, clOlive, clNavy, clPurple, clTeal, clGray, clSilver,
clRed, clLime, clYellow, clBlue, clFuchsia, clAqua, clWhite);
ColorNames: array [0..15] of string = ('Black', 'Maroon', 'Green', 'Olive', 'Navy', 'Purple', 'Teal', 'Gray', 'Silver',
'Red', 'Lime', 'Yellow', 'Blue', 'Fuchsia', 'Aqua', 'White');
var
I: Integer;
B: TBitmap;
begin
B := TBitmap.Create;
B.Width := Images.Width + 1;
B.Height := Images.Height;
APopupMenu.ItemLinks.Clear;
for I := 0 to 15 do
begin
if Colors[I] <> clBlack then
B.Canvas.Brush.Color := clBlack
else
B.Canvas.Brush.Color := clWhite;
B.Canvas.FillRect(Rect(0, 0, B.Width, B.Height));
B.Canvas.Brush.Color := Colors[I];
B.Canvas.Pen.Color := clGray;
if AButton.Tag = Colors[I] then
B.Canvas.Rectangle(1, 1, B.Width - 3, B.Height - 2)
else
B.Canvas.Rectangle(2, 2, B.Width - 2, B.Height - 1);
with APopupMenu.ItemLinks.Add do
begin
if AButton.Tag = Colors[I] then
begin
Item := ADownButton;
ADownButton.Down := True;
end
else
Item := AItemButton;
Data := Colors[I];
UserCaption := ColorNames[I];
UserGlyph := B;
end;
end;
with APopupMenu.ItemLinks.Add do
begin
Item := ACustomButton;
UserCaption := 'Custom ...';
BeginGroup := True;
end;
B.Free;
end;
procedure TEBar2000DemoMainForm.btnFontColorItemClick(Sender: TObject);
begin
btnFontColor.Tag := TdxBarLargeButton(Sender).ClickItemLink.Data;
UpdateColorItems(btnFontColor, btnDownFontColorItem, btnCustomFontColor, btnFontColorItem, FontColorPopupMenu);
UpdateColorButtonGlyph(btnFontColor);
end;
procedure TEBar2000DemoMainForm.UpdateColorButtonGlyph(AButton: TdxBarLargeButton);
var B : TBitmap;
R : TRect;
begin
B := TBitmap.Create;
with B, Canvas do
begin
Width := AButton.Glyph.Width;
Height := AButton.Glyph.Height;
if AButton.Tag = clFuchsia then
Brush.Color := clSilver
else
Brush.Color := clFuchsia;
R := Rect(0, 0, Width, Height);
FillRect(R);
BrushCopy(R, AButton.Glyph, R, AButton.Glyph.TransparentColor);
Brush.Color := AButton.Tag;
if ColorToRGB(AButton.Tag) <> ColorToRGB(clBtnFace) then
Pen.Color := AButton.Tag
else
Pen.Color := clBlack;
Rectangle(0, Height - 4, Width, Height - 1)
end;
AButton.Glyph.Assign(B);
B.Free;
end;
procedure TEBar2000DemoMainForm.btnCustomFontColorClick(Sender: TObject);
begin
ColorDialog.Color := btnFontColor.Tag;
if ColorDialog.Execute then
begin
btnFontColor.Tag := ColorDialog.Color;
UpdateColorButtonGlyph(btnFontColor);
UpdateColorItems(btnFontColor, btnDownFontColorItem, btnCustomFontColor, btnFontColorItem, FontColorPopupMenu);
end;
end;
procedure TEBar2000DemoMainForm.btnColorItemClick(Sender: TObject);
begin
btnHighlight.Tag := TdxBarLargeButton(Sender).ClickItemLink.Data;
UpdateColorItems(btnHighlight, btnDownColorItem, btnCustomColor, btnColorItem, HightlightColorPopupMenu);
UpdateColorButtonGlyph(btnHighlight);
end;
procedure TEBar2000DemoMainForm.btnCustomColorClick(Sender: TObject);
begin
ColorDialog.Color := btnHighlight.Tag;
if ColorDialog.Execute then
begin
btnHighlight.Tag := ColorDialog.Color;
UpdateColorButtonGlyph(btnHighlight);
UpdateColorItems(btnHighlight, btnDownColorItem, btnCustomColor, btnColorItem, HightlightColorPopupMenu);
end;
end;
procedure TEBar2000DemoMainForm.btnStandardClick(Sender: TObject);
begin
FUpdateVisible := False;
dxBarManager.Bars[TdxBarLargeButton(Sender).Tag].Visible := TdxBarLargeButton(Sender).Down;
FUpdateVisible := True;
end;
procedure TEBar2000DemoMainForm.sbFontClick(Sender: TObject);
begin
FontDialog.Font.Assign(dxBarManager.Font);
if FontDialog.Execute then
dxBarManager.Font.Assign(FontDialog.Font);
end;
procedure TEBar2000DemoMainForm.cbCanCustomizeClick(Sender: TObject);
begin
dxBarManager.CanCustomize := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.sbDockColorClick(Sender: TObject);
begin
if ColorDialog.Execute then
dxBarManager.DockColor := ColorDialog.Color;
end;
procedure TEBar2000DemoMainForm.cbAllowResetClick(Sender: TObject);
begin
dxBarManager.AllowReset := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbShowHelpButtonClick(Sender: TObject);
begin
dxBarManager.ShowHelpButton := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbSunkenBorderClick(Sender: TObject);
begin
dxBarManager.SunkenBorder := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbMenusShowRecentItemsFirstClick(Sender: TObject);
begin
dxBarManager.MenusShowRecentItemsFirst := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.rgMenuAnimationsClick(Sender: TObject);
begin
dxBarManager.MenuAnimations := TdxBarMenuAnimations(rgMenuAnimations.ItemIndex);
end;
procedure TEBar2000DemoMainForm.SpeedButton1Click(Sender: TObject);
begin
FontDialog.Font.Assign(dxBarManager.Bars[1].Font);
if FontDialog.Execute then
dxBarManager.bars[1].Font.Assign(FontDialog.Font);
end;
procedure TEBar2000DemoMainForm.SpeedButton2Click(Sender: TObject);
begin
FontDialog.Font.Assign(dxBarManager.Bars[2].Font);
if FontDialog.Execute then
dxBarManager.bars[2].Font.Assign(FontDialog.Font);
end;
procedure TEBar2000DemoMainForm.cbAllowCustomizingBar1Click(Sender: TObject);
begin
dxBarManager.Bars[1].AllowCustomizing := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbAllowQuickCustomizingBar1Click(Sender: TObject);
begin
dxBarManager.Bars[1].AllowQuickCustomizing := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbAllowResetBar1Click(Sender: TObject);
begin
dxBarManager.Bars[1].AllowReset := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbAllowCustomizingBar2Click(Sender: TObject);
begin
dxBarManager.Bars[2].AllowCustomizing := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbAllowQuickCustomizingBar2Click(Sender: TObject);
begin
dxBarManager.Bars[2].AllowQuickCustomizing := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbAllowResetBar2Click(Sender: TObject);
begin
dxBarManager.Bars[2].AllowReset := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbShowFullMenusAfterDelayClick(Sender: TObject);
begin
dxBarManager.ShowFullMenusAfterDelay := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.dxBarManagerHelpButtonClick(Sender: TObject);
begin
MessageDlg('You click on Help Button .', mtInformation, [mbOK],0);
end;
procedure TEBar2000DemoMainForm.cbRotateWhenVerticalClick(Sender: TObject);
begin
dxBarManager.Bars[3].RotateWhenVertical := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.btnCustomizeClick(Sender: TObject);
begin
dxBarManager.Customizing(True);
end;
procedure TEBar2000DemoMainForm.dxBarManagerBarVisibleChange(Sender: TdxBarManager;
ABar: TdxBar);
begin
if FUpdateVisible and HandleAllocated then
case ABar.Index of
1: btnStandard.Down := ABar.Visible;
2: btnFormatting.Down := ABar.Visible;
3: btnInternet.Down := ABar.Visible;
end;
end;
procedure TEBar2000DemoMainForm.cbStretchGlyphsClick(Sender: TObject);
begin
dxBarManager.StretchGlyphs := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.rgStyleClick(Sender: TObject);
begin
dxBarManager.Style := TdxBarManagerStyle(rgStyle.ItemIndex);
Caption := Format('ExpressBars (%s Style)',[rgStyle.Items[rgStyle.ItemIndex]]);
end;
procedure TEBar2000DemoMainForm.CheckBox1Click(Sender: TObject);
begin
dxBarManager.Bars[1].MultiLine := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.CheckBox2Click(Sender: TObject);
begin
dxBarManager.Bars[2].MultiLine := TCheckBox(Sender).Checked;
end;
procedure TEBar2000DemoMainForm.cbShowCaptionsClick(Sender: TObject);
var
i: Integer;
AChecked: Boolean;
begin
dxBarManager.LockUpdate := True;
AChecked := TCheckBox(Sender).Checked;
for i:=0 to ComponentCount - 1 do
if Components[i] is TdxBarLargeButton then
TdxBarLargeButton(Components[i]).ShowCaption := AChecked;
dxBarManager.LockUpdate := False;
end;
procedure TEBar2000DemoMainForm.cbHotImagesClick(Sender: TObject);
begin
if TCheckBox(Sender).Checked then
dxBarManager.HotImages := ilHotImages
else
dxBarManager.HotImages := nil;
end;
procedure TEBar2000DemoMainForm.cbDisabledImagesClick(Sender: TObject);
begin
if TCheckBox(Sender).Checked then
dxBarManager.DisabledImages := ilDisabledImages
else
dxBarManager.DisabledImages := nil;
end;
procedure TEBar2000DemoMainForm.CheckBox4Click(Sender: TObject);
begin
if TCheckBox(Sender).Checked then
dxBarManager.LargeImages := Images
else
dxBarManager.LargeImages := nil;
end;
procedure TEBar2000DemoMainForm.TrackBarChange(Sender: TObject);
begin
dxBarManager.Bars[TTrackBar(Sender).Tag].AlphaBlendValue := TTrackBar(Sender).Position * 15;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -