程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> [TButton]運行時動態創建和刪除按鈕

[TButton]運行時動態創建和刪除按鈕

編輯:Delphi

  新開一個project,然後拖兩個Button放在窗體上
  代碼如下:
  
  unit Unit1;

  interface

  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls;

  type
    TForm1 = class(TForm)
      btnAddButton: TButton;
      btnDeleteLast: TButton;
      procedure btnAddButtonClick(Sender: TObject);
      procedure btnDeleteLastClick(Sender: TObject);
    private
      { Private declarations }
      procedure CustomButtonClick(Sender: TObject);
    public
      { Public declarations }
    end;

  var
    Form1: TForm1;

  implementation

  {$R *.dfm}

  procedure TForm1.btnAddButtonClick(Sender: TObject);
  var
    NewButton: TButton;   // 新 Button的指針
  begin
    // 在內存中創建一個 Button,擁有者為self,這樣當窗體 destory時,這個新button
    // 能夠被自動釋放
    NewButton := TButton.Create(Self);

    With NewButton do
    begin
      Top := 60;          // button 的出現的坐標
      Width := 60;        // button 的寬度
      Left := Width * (Self.ControlCount - 2);
      Parent := Self;     // 指明在那個窗體顯示
      OnClick := CustomButtonClick;       // 指定button click事件
      Caption := 'Button' + IntToStr(Self.ControlCount - 2);
    end;  // with
  end;

  procedure TForm1.btnDeleteLastClick(Sender: TObject);
  begin
    // 確定窗體上有新的button
    if Self.ControlCount > 2 then
      // 刪除最後新建的 button
      TButton(Controls[ControlCount - 1]).Destroy;
  end;

  procedure TForm1.CustomButtonClick(Sender: TObject);
  begin
    // 根據 Sender 來判斷哪個新建的button click
    ShowMessage(TButton(Sender).Caption + ' Pressed');
  end;

  end.
  
  
  作者:lzcx

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved