488 lines
15 KiB
ObjectPascal
488 lines
15 KiB
ObjectPascal
unit Unit1;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Menus,
|
|
Dialogs, ImgList, StdCtrls, ExtCtrls, ComCtrls, TBX, TB2Dock, TB2Toolbar,
|
|
TB2Item, TB2Common, TB2ExtItems, TBXMDI, TBXExtItems, TBXSwitcher,
|
|
TBXLists, TBXDkPanels, TBXToolPals, TBXStatusBars, TB2MDI,
|
|
TBXOffice2003Theme, TB2ToolWindow,
|
|
Buttons, XPMan, TBXOfficeXPTheme, TBXWhidbeyTheme;
|
|
|
|
type
|
|
TForm1 = class(TForm)
|
|
TBDock1: TTBXDock;
|
|
TBToolbar1: TTBXToolbar;
|
|
TBXSubmenuItem1: TTBXSubmenuItem;
|
|
TBXItem1: TTBXItem;
|
|
TBXItem2: TTBXItem;
|
|
TBXItem3: TTBXItem;
|
|
TBXItem4: TTBXItem;
|
|
mnEdit: TTBXSubmenuItem;
|
|
TBXItem5: TTBXItem;
|
|
TBXSeparatorItem1: TTBXSeparatorItem;
|
|
TBXSeparatorItem2: TTBXSeparatorItem;
|
|
TBXItem6: TTBXItem;
|
|
ImageList1: TImageList;
|
|
TBXItem7: TTBXItem;
|
|
TBXSeparatorItem3: TTBXSeparatorItem;
|
|
TBXItem8: TTBXItem;
|
|
TBXSubmenuItem3: TTBXSubmenuItem;
|
|
TBXSubmenuItem4: TTBXSubmenuItem;
|
|
TBXSeparatorItem4: TTBXSeparatorItem;
|
|
TBXItem9: TTBXItem;
|
|
TBXItem10: TTBXItem;
|
|
TBXItem11: TTBXItem;
|
|
TBXItem15: TTBXItem;
|
|
TBDock2: TTBXDock;
|
|
TBDock3: TTBXDock;
|
|
TBDock4: TTBXDock;
|
|
ImageList2: TImageList;
|
|
TBXSeparatorItem11: TTBXSeparatorItem;
|
|
TBXItem29: TTBXItem;
|
|
TBXItem28: TTBXItem;
|
|
TBXItem38: TTBXItem;
|
|
TBXToolbar2: TTBXToolbar;
|
|
TBXItem40: TTBXItem;
|
|
TBXItem41: TTBXItem;
|
|
TBXItem42: TTBXItem;
|
|
TBXSeparatorItem12: TTBXSeparatorItem;
|
|
TBXItem43: TTBXItem;
|
|
TBXItem44: TTBXItem;
|
|
TBXSeparatorItem13: TTBXSeparatorItem;
|
|
TBXItem45: TTBXItem;
|
|
TBXItem46: TTBXItem;
|
|
TBXItem47: TTBXItem;
|
|
TBXSeparatorItem14: TTBXSeparatorItem;
|
|
mnUndoItems: TTBXSubmenuItem;
|
|
TBXSubmenuItem9: TTBXSubmenuItem;
|
|
TBXItem12: TTBXItem;
|
|
TBXItem13: TTBXItem;
|
|
TBXSeparatorItem6: TTBXSeparatorItem;
|
|
bColorItem: TTBXColorItem;
|
|
TBXSubmenuItem6: TTBXSubmenuItem;
|
|
ColorDialog: TColorDialog;
|
|
TBXSubmenuItem2: TTBXSubmenuItem;
|
|
TBXItem16: TTBXItem;
|
|
TBXItem17: TTBXItem;
|
|
TBXItem18: TTBXItem;
|
|
TBXItem19: TTBXItem;
|
|
TBXSeparatorItem9: TTBXSeparatorItem;
|
|
TBXItem20: TTBXItem;
|
|
TBXItem21: TTBXItem;
|
|
TBXSeparatorItem10: TTBXSeparatorItem;
|
|
TBXItem22: TTBXItem;
|
|
TBXMDIHandler1: TTBXMDIHandler;
|
|
TBXSubmenuItem5: TTBXSubmenuItem;
|
|
TBXMDIWindowItem1: TTBXMDIWindowItem;
|
|
TBXItem23: TTBXItem;
|
|
TBXItem26: TTBXItem;
|
|
TBXSeparatorItem16: TTBXSeparatorItem;
|
|
TBXSwitcher: TTBXSwitcher;
|
|
TBXPopupMenu1: TTBXPopupMenu;
|
|
TBXItem36: TTBXItem;
|
|
TBXItem37: TTBXItem;
|
|
TBXSubmenuItem7: TTBXSubmenuItem;
|
|
TBXItem39: TTBXItem;
|
|
TBXItem55: TTBXItem;
|
|
TBXSeparatorItem17: TTBXSeparatorItem;
|
|
TBXItem56: TTBXItem;
|
|
TBXItem57: TTBXItem;
|
|
TBXItem58: TTBXItem;
|
|
TBXItem59: TTBXItem;
|
|
TBXToolbar3: TTBXToolbar;
|
|
TBXSeparatorItem18: TTBXSeparatorItem;
|
|
TBXItem61: TTBXItem;
|
|
TBXItem62: TTBXItem;
|
|
TBXItem64: TTBXItem;
|
|
TBXItem65: TTBXItem;
|
|
TBXItem66: TTBXItem;
|
|
TBXSeparatorItem19: TTBXSeparatorItem;
|
|
TBXSubmenuItem8: TTBXSubmenuItem;
|
|
TBXSeparatorItem20: TTBXSeparatorItem;
|
|
MoreColors: TTBXItem;
|
|
TBXSeparatorItem5: TTBXSeparatorItem;
|
|
TBXLabelItem1: TTBXLabelItem;
|
|
TBToolbar3: TTBXToolbar;
|
|
be1: TTBXSubmenuItem;
|
|
TBXItem24: TTBXItem;
|
|
TBXItem25: TTBXItem;
|
|
TBXItem30: TTBXItem;
|
|
be2: TTBXSubmenuItem;
|
|
be3: TTBXItem;
|
|
be4: TTBXItem;
|
|
TBXSeparatorItem8: TTBXSeparatorItem;
|
|
be5: TTBXItem;
|
|
be6: TTBXItem;
|
|
be7: TTBXSubmenuItem;
|
|
TBXItem27: TTBXItem;
|
|
TBXItem31: TTBXItem;
|
|
TBXEditItem2: TTBXEditItem;
|
|
TBXSeparatorItem7: TTBXSeparatorItem;
|
|
UndoList: TTBXUndoList;
|
|
UndoLabel: TTBXLabelItem;
|
|
lstFonts: TTBXComboBoxItem;
|
|
TBXComboList1: TTBXComboBoxItem;
|
|
ColorCombo: TTBXDropDownItem;
|
|
TBXSubmenuItem10: TTBXSubmenuItem;
|
|
TBXList1: TTBXStringList;
|
|
TBXSeparatorItem15: TTBXSeparatorItem;
|
|
DockablePanel: TTBXDockablePanel;
|
|
TBXPageScroller: TTBXPageScroller;
|
|
TBXLabel1: TTBXLabel;
|
|
TBXLabel2: TTBXLabel;
|
|
TBXLabel3: TTBXLabel;
|
|
TBXAlignmentPanel2: TTBXAlignmentPanel;
|
|
ListBox1: TListBox;
|
|
TBXLabel4: TTBXLabel;
|
|
TBXAlignmentPanel4: TTBXAlignmentPanel;
|
|
TBXToolbar1: TTBXToolbar;
|
|
TBXSubmenuItem11: TTBXSubmenuItem;
|
|
TBXSeparatorItem21: TTBXSeparatorItem;
|
|
TBXComboList2: TTBXComboBoxItem;
|
|
ClrDefault: TTBXColorItem;
|
|
ColorPalette: TTBXColorPalette;
|
|
TBXSeparatorItem26: TTBXSeparatorItem;
|
|
ToolPalette: TTBXToolPalette;
|
|
TBXCheckBox1: TTBXCheckBox;
|
|
TBXRadioButton1: TTBXRadioButton;
|
|
TBXRadioButton2: TTBXRadioButton;
|
|
TBXRadioButton3: TTBXRadioButton;
|
|
TBXCheckBox2: TTBXCheckBox;
|
|
TBXLink1: TTBXLink;
|
|
TBXLabel5: TTBXLabel;
|
|
TBXStatusBar: TTBXStatusBar;
|
|
Edit1: TEdit;
|
|
bColorButton: TTBXSubmenuItem;
|
|
TBXSeparatorItem22: TTBXSeparatorItem;
|
|
TBXVisibilityToggleItem1: TTBXVisibilityToggleItem;
|
|
TBXSpinEditItem1: TTBXSpinEditItem;
|
|
TBXSeparatorItem23: TTBXSeparatorItem;
|
|
TBXComboList3: TTBXComboBoxItem;
|
|
TBXMultiDock1: TTBXMultiDock;
|
|
TBXMultiDock2: TTBXMultiDock;
|
|
TBXMultiDock3: TTBXMultiDock;
|
|
TBXMultiDock4: TTBXMultiDock;
|
|
TBXDockablePanel1: TTBXDockablePanel;
|
|
TBXDockablePanel2: TTBXDockablePanel;
|
|
TBXDockablePanel3: TTBXDockablePanel;
|
|
TBXLabel6: TTBXLabel;
|
|
TBXRadioButton4: TTBXRadioButton;
|
|
TBXRadioButton5: TTBXRadioButton;
|
|
TBXRadioButton6: TTBXRadioButton;
|
|
TBXLabel7: TTBXLabel;
|
|
TBXCheckBox3: TTBXCheckBox;
|
|
TBXCheckBox4: TTBXCheckBox;
|
|
TBXToolWindow1: TTBXToolWindow;
|
|
TBXSpinEditItem2: TTBXSpinEditItem;
|
|
TBXComboBoxItem1: TTBXComboBoxItem;
|
|
XPManifest1: TXPManifest;
|
|
TBXButton1: TTBXButton;
|
|
TBXButton2: TTBXButton;
|
|
TBXButton3: TTBXButton;
|
|
TBXPageScroller1: TTBXPageScroller;
|
|
TBXButton4: TTBXButton;
|
|
TBXButton5: TTBXButton;
|
|
TBXButton6: TTBXButton;
|
|
pruebaedit: TTBXEditItem;
|
|
procedure TBXItem31Click(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure ListBox1Click(Sender: TObject);
|
|
procedure MakeNewWindow(Sender: TObject);
|
|
procedure TBXItem23Click(Sender: TObject);
|
|
procedure TBXItem26Click(Sender: TObject);
|
|
procedure TBXItem27Click(Sender: TObject);
|
|
procedure mnUndoItemsPopup(Sender: TTBCustomItem; FromLink: Boolean);
|
|
procedure UndoListChange(Sender: TObject);
|
|
procedure lstFontsMeasureHeight(Sender: TTBXCustomList;
|
|
ACanvas: TCanvas; var AHeight: Integer);
|
|
procedure lstFontsDrawItem(Sender: TTBXCustomList; ACanvas: TCanvas;
|
|
ARect: TRect; AIndex, AHoverIndex: Integer; var DrawDefault: Boolean);
|
|
procedure TBXItem60Click(Sender: TObject);
|
|
procedure MoreColorsClick(Sender: TObject);
|
|
procedure ColorPaletteChange(Sender: TObject);
|
|
procedure ClrDefaultClick(Sender: TObject);
|
|
procedure TBXRadioButton1Change(Sender: TObject);
|
|
procedure TBXRadioButton2Change(Sender: TObject);
|
|
procedure TBXRadioButton3Change(Sender: TObject);
|
|
procedure TBXCheckBox1Change(Sender: TObject);
|
|
procedure TBXStatusBarPanelClick(Sender: TTBXCustomStatusBar;
|
|
Panel: TTBXStatusPanel);
|
|
procedure bColorButtonDrawImage(Item: TTBCustomItem;
|
|
Viewer: TTBItemViewer; Canvas: TCanvas; ImageRect: TRect;
|
|
ImageOffset: TPoint; StateFlags: Integer);
|
|
procedure TBXSpinEditItem1TextToValue(Sender: TTBXCustomSpinEditItem;
|
|
const AText: String; out AValue: Extended; var CanConvert: Boolean);
|
|
procedure TBXSpinEditItem1ValueToText(Sender: TTBXCustomSpinEditItem;
|
|
const AValue: Extended; var Text: String);
|
|
procedure TBXSpinEditItem1Convert(Sender: TTBXCustomSpinEditItem;
|
|
const APrefix, APostfix: String; var AValue: Extended;
|
|
var CanConvert: Boolean);
|
|
procedure TBXComboList3Change(Sender: TObject; const Text: String);
|
|
procedure TBXRadioButton4Click(Sender: TObject);
|
|
procedure TBXCheckBox3Change(Sender: TObject);
|
|
procedure TBXCheckBox4Change(Sender: TObject);
|
|
procedure TBXColorSet1GetColorInfo(Sender: TTBXCustomColorSet; Col,
|
|
Row: Integer; var Color: TColor; var Name: String);
|
|
procedure be3Click(Sender: TObject);
|
|
end;
|
|
|
|
var
|
|
Form1: TForm1;
|
|
|
|
implementation
|
|
|
|
uses Unit2, TBXUtils, TBXThemes;
|
|
|
|
{$R *.DFM}
|
|
|
|
procedure TForm1.TBXItem31Click(Sender: TObject);
|
|
begin
|
|
TTBXItem(Sender).Checked := True;
|
|
end;
|
|
|
|
procedure TForm1.FormCreate(Sender: TObject);
|
|
var
|
|
C: HCURSOR;
|
|
begin
|
|
if not IsWindowsXP then
|
|
begin
|
|
TBXLabel1.Enabled := False;
|
|
TBXCheckBox1.Enabled := False;
|
|
end;
|
|
GetAvailableTBXThemes(ListBox1.Items);
|
|
lstFonts.Strings := Screen.Fonts;
|
|
|
|
{ Replace Borland's hand cursor with windows default one, if available }
|
|
C := LoadCursor(0, IDC_HAND);
|
|
if C <> 0 then Screen.Cursors[crHandPoint] := C;
|
|
end;
|
|
|
|
procedure TForm1.ListBox1Click(Sender: TObject);
|
|
begin
|
|
TBXSetTheme(ListBox1.Items[ListBox1.ItemIndex]);
|
|
end;
|
|
|
|
procedure TForm1.MakeNewWindow(Sender: TObject);
|
|
begin
|
|
TForm2.Create(Self);
|
|
end;
|
|
|
|
procedure TForm1.TBXItem23Click(Sender: TObject);
|
|
begin
|
|
Cascade;
|
|
end;
|
|
|
|
procedure TForm1.TBXItem26Click(Sender: TObject);
|
|
begin
|
|
Tile;
|
|
end;
|
|
|
|
procedure TForm1.TBXItem27Click(Sender: TObject);
|
|
begin
|
|
TTBXItem(Sender).Checked := True;
|
|
end;
|
|
|
|
type
|
|
TTBViewAccess = class(TTBView);
|
|
|
|
procedure TForm1.mnUndoItemsPopup(Sender: TTBCustomItem; FromLink: Boolean);
|
|
begin
|
|
UndoList.ItemIndex := 0;
|
|
end;
|
|
|
|
procedure TForm1.UndoListChange(Sender: TObject);
|
|
const
|
|
Actns: array [Boolean] of string = (' Action', ' Actions');
|
|
begin
|
|
with UndoList do
|
|
UndoLabel.UpdateCaption('Undo ' + IntToStr(ItemIndex + 1) + Actns[ItemIndex <> 0]);
|
|
end;
|
|
|
|
procedure TForm1.lstFontsMeasureHeight(Sender: TTBXCustomList;
|
|
ACanvas: TCanvas; var AHeight: Integer);
|
|
begin
|
|
AHeight := AHeight * 3 div 2;
|
|
end;
|
|
|
|
procedure TForm1.lstFontsDrawItem(Sender: TTBXCustomList; ACanvas: TCanvas;
|
|
ARect: TRect; AIndex, AHoverIndex: Integer; var DrawDefault: Boolean);
|
|
var
|
|
S: string;
|
|
begin
|
|
S := lstFonts.Strings[AIndex];
|
|
ACanvas.Font.Size := 12;
|
|
ACanvas.Font.Name := S;
|
|
end;
|
|
|
|
procedure TForm1.TBXItem60Click(Sender: TObject);
|
|
begin
|
|
DockablePanel.Visible := True;
|
|
end;
|
|
|
|
procedure TForm1.MoreColorsClick(Sender: TObject);
|
|
begin
|
|
with ColorDialog do
|
|
begin
|
|
Color := ColorPalette.Color;
|
|
if Execute then ColorPalette.Color := Color;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.ColorPaletteChange(Sender: TObject);
|
|
begin
|
|
ClrDefault.Checked := ColorPalette.Color = clNone;
|
|
ColorCombo.Text := ColorPalette.ColorToString(ColorPalette.Color);
|
|
bColorItem.Color := ColorPalette.Color;
|
|
bColorItem.Caption := 'Current Color: ' + ColorPalette.ColorToString(ColorPalette.Color);
|
|
bColorButton.Invalidate;
|
|
end;
|
|
|
|
procedure TForm1.ClrDefaultClick(Sender: TObject);
|
|
begin
|
|
ColorPalette.Color := clNone;
|
|
ClrDefault.Checked := True;
|
|
end;
|
|
|
|
procedure TForm1.TBXRadioButton1Change(Sender: TObject);
|
|
begin
|
|
TBXSwitcher.FlatMenuStyle := fmsAuto;
|
|
end;
|
|
|
|
procedure TForm1.TBXRadioButton2Change(Sender: TObject);
|
|
begin
|
|
TBXSwitcher.FlatMenuStyle := fmsEnable;
|
|
end;
|
|
|
|
procedure TForm1.TBXRadioButton3Change(Sender: TObject);
|
|
begin
|
|
TBXSwitcher.FlatMenuStyle := fmsDisable;
|
|
end;
|
|
|
|
procedure TForm1.TBXCheckBox1Change(Sender: TObject);
|
|
begin
|
|
TBXSwitcher.EnableXPStyles := TBXCheckBox1.Checked;
|
|
end;
|
|
|
|
procedure TForm1.TBXStatusBarPanelClick(Sender: TTBXCustomStatusBar; Panel: TTBXStatusPanel);
|
|
begin
|
|
if Panel.Index in [2, 4] then Panel.Enabled := not Panel.Enabled;
|
|
end;
|
|
|
|
procedure TForm1.bColorButtonDrawImage(Item: TTBCustomItem;
|
|
Viewer: TTBItemViewer; Canvas: TCanvas; ImageRect: TRect;
|
|
ImageOffset: TPoint; StateFlags: Integer);
|
|
var
|
|
DC: HDC;
|
|
Color: TColor;
|
|
begin
|
|
DC := Canvas.Handle;
|
|
if not Boolean(StateFlags and ISF_DISABLED) then
|
|
begin
|
|
Color := ColorPalette.Color;
|
|
OffsetRect(ImageRect, ImageOffset.X, ImageOffset.Y);
|
|
ImageRect.Top := ImageRect.Bottom - 4;
|
|
if Color <> clNone then
|
|
begin
|
|
Canvas.Brush.Color := Color;
|
|
Canvas.FillRect(ImageRect);
|
|
end
|
|
else
|
|
begin
|
|
FrameRectEx(DC, ImageRect, clBtnShadow, True);
|
|
DitherRect(DC, ImageRect, clBtnFace, clBtnShadow);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.TBXSpinEditItem1TextToValue(
|
|
Sender: TTBXCustomSpinEditItem; const AText: String;
|
|
out AValue: Extended; var CanConvert: Boolean);
|
|
begin
|
|
if CompareText(AText, 'Auto') = 0 then
|
|
begin
|
|
AValue := 0;
|
|
CanConvert := True;
|
|
end
|
|
else if CompareText(AText, 'pi') = 0 then
|
|
begin
|
|
AValue := 3.14;
|
|
CanConvert := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TForm1.TBXSpinEditItem1ValueToText(
|
|
Sender: TTBXCustomSpinEditItem; const AValue: Extended;
|
|
var Text: String);
|
|
begin
|
|
if AValue <= 0 then Text := 'Auto';
|
|
end;
|
|
|
|
procedure TForm1.TBXSpinEditItem1Convert(Sender: TTBXCustomSpinEditItem;
|
|
const APrefix, APostfix: String; var AValue: Extended;
|
|
var CanConvert: Boolean);
|
|
var
|
|
S: string;
|
|
begin
|
|
S := APostfix;
|
|
|
|
{ use current units if user did not type in units explicitly }
|
|
if Length(S) = 0 then S := Sender.Postfix;
|
|
|
|
{ convert everything to mm }
|
|
if CompareText(S, 'in') = 0 then AValue := AValue * 25.4
|
|
else if CompareText(S, 'cm') = 0 then AValue := AValue * 10;
|
|
|
|
{ convert mm to current units }
|
|
if CompareText(Sender.Postfix, 'in') = 0 then AValue := AValue / 25.4
|
|
else if CompareText(Sender.Postfix, 'cm') = 0 then AValue := AValue * 0.1;
|
|
end;
|
|
|
|
procedure TForm1.TBXComboList3Change(Sender: TObject; const Text: String);
|
|
begin
|
|
TBXSpinEditItem1.Postfix := Text;
|
|
end;
|
|
|
|
procedure TForm1.TBXRadioButton4Click(Sender: TObject);
|
|
begin
|
|
TBXDockablePanel1.CaptionRotation := TDPCaptionRotation((Sender as TComponent).Tag);
|
|
end;
|
|
|
|
procedure TForm1.TBXCheckBox3Change(Sender: TObject);
|
|
var
|
|
B: Boolean;
|
|
begin
|
|
B := (Sender as TTBXCheckBox).Checked;
|
|
DockablePanel.SmoothDrag := B;
|
|
TBXDockablePanel1.SmoothDrag := B;
|
|
TBXDockablePanel2.SmoothDrag := B;
|
|
TBXDockablePanel3.SmoothDrag := B;
|
|
end;
|
|
|
|
procedure TForm1.TBXCheckBox4Change(Sender: TObject);
|
|
var
|
|
B: Boolean;
|
|
begin
|
|
B := (Sender as TTBXCheckBox).Checked;
|
|
DockablePanel.SmoothDockedResize := B;
|
|
TBXDockablePanel1.SmoothDockedResize := B;
|
|
TBXDockablePanel2.SmoothDockedResize := B;
|
|
TBXDockablePanel3.SmoothDockedResize := B;
|
|
end;
|
|
|
|
procedure TForm1.TBXColorSet1GetColorInfo(Sender: TTBXCustomColorSet; Col,
|
|
Row: Integer; var Color: TColor; var Name: String);
|
|
begin
|
|
Color := clRed;
|
|
Name := 'Red';
|
|
end;
|
|
|
|
procedure TForm1.be3Click(Sender: TObject);
|
|
begin
|
|
TBXToolbar3.View.Select(TBXToolbar3.View.Find(pruebaedit), True);
|
|
TBXToolbar3.View.ExecuteSelected(True);
|
|
end;
|
|
|
|
end.
|