📄 interfase.pas
字号:
unit interfase;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ActnList, XPStyleActnCtrls,
ActnMan, ToolWin, ActnCtrls, ImgList, Buttons, StdStyleActnCtrls,
ActnColorMaps, jpeg;
type
Tt_interfase = class(TForm)
Panel1: TPanel;
Image1: TImage;
Panel3: TPanel;
Basicinfo: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
Image2: TImage;
Splitter1: TSplitter;
Panel2: TPanel;
Image3: TImage;
Images: TImageList;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BasicinfoClick(Sender: TObject);
private
{ Private declarations }
public
Procedure FreePanelButton;
{ Public declarations }
end;
var
t_interfase: Tt_interfase;
ShowImage: Boolean = True; //判断是否隐藏导航条
Const
{.........按钮定义信息........}
ButtonWidth: Integer = 130;
ButtonHeight: Integer = 100;
HorInterval:Integer = 10; //水平间距
TopMargin:Integer = 50; //上边距离
VerInterval: Integer = 20; //垂直距离
MaxCountPerRow: Integer = 4;
ButtonLeft: Integer = 80;
{.........按钮定义信息........}
implementation
uses main;
{$R *.dfm}
procedure Tt_interfase.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
t_main.Panel3.Visible := False;
ShowInter.Checked := False;
end;
//当用户选择某一类功能时,程序通过遍历某个功能菜单动态创建按钮,并适当排列按钮的位置
//设置按钮的单击事件
procedure Tt_interfase.BasicinfoClick(Sender: TObject);
var
ItemCount: Integer;
Temptag,i: Integer;
Button: TSpeedButton;
Rowid: Integer;
ImageIndex: Integer;
ColumnID: Integer;//由按钮索引计算按钮列
begin
Temptag := TComponent(Sender).Tag;
Case TempTag of
1: ImageIndex := 0;
2: ImageIndex := 6;
3: ImageIndex := 15;
4: ImageIndex := 23;
0: ImageIndex := 31;
end;
FreePanelButton;//释放Panel2中的功能按钮
ItemCount := t_main.Manager.ActionBars[0].Items[Temptag].Items.Count; //对应菜单的功能项数
For i := 1 to ItemCount do
begin
Button := TSpeedButton.Create(Panel2);
with Button do
begin
Flat := True;
Caption := t_main.Manager.ActionBars[0].Items[Temptag].Items[i-1].Caption;
Parent := Panel2;
Hint := Caption;
ShowHint := True;
Layout := blGlyphTop;
if i < Images.Count then
Images.GetBitmap(ImageIndex+i-1,Glyph)
else
Images.GetBitmap(0,Glyph);
OnClick := t_main.Manager.ActionBars[0].Items[Temptag].Items[i-1].Action.OnExecute;
Width := ButtonWidth;
Height := ButtonHeight;
(*.......设置按钮位置......*)
{......计算行号.......}
if (i div MaxCountPerRow)>0 then
begin
if i mod MaxCountPerRow = 0 then
Rowid := i div MaxCountPerRow
else
Rowid := i div MaxCountPerRow+1;
end
else
begin
Rowid := 1;
end;
{......计算行号.......}
ColumnID := i mod MaxCountPerRow; //计算列号
if Columnid = 0 then
Columnid := MaxCountPerRow;
if ColumnID = 1 then
Left := ButtonLeft
else
begin
Left := ButtonLeft+ (ColumnID-1)*(ButtonWidth+HorInterval);
end;
Top := TopMargin+(Rowid-1)*(ButtonHeight+VerInterval);
(*.......设置按钮位置......*)
end;
end;
end;
//释放动态创建的按钮
procedure Tt_interfase.FreePanelButton;
var
i: Integer;
begin
For i := Panel2.ControlCount-1 downto 0 do
if Panel2.Controls[i]is TSpeedButton then
begin
TSpeedButton(Panel2.Controls[i]).Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -