⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interfase.pas

📁 物流管理系统是一个典型的数据库应用程序
💻 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 + -