TButton 執行時動態建立和刪除按鈕

2021-03-31 08:56:29 字數 1572 閱讀 5926

新開乙個project,然後拖兩個button放在窗體上

**如下:

unit unit1;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, stdctrls;

type

tform1 = class(tform)

btnaddbutton: tbutton;

b***eletelast: tbutton;

procedure btnaddbuttonclick(sender: tobject);

procedure b***eletelastclick(sender: tobject);

private

procedure custombuttonclick(sender: tobject);

public

end;

varform1: tform1;

implementation

procedure tform1.btnaddbuttonclick(sender: tobject);

varnewbutton: 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.b***eletelastclick(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;

OC執行時動態建立類

it168技術 在前文 深入淺出cocoa之類與物件 一文中,我已經詳細介紹了objc中的 class 與 object 的概念,今天我們來如何在執行時動態建立類。下面這個函式就是應用前面講到的class,metaclass的概念,在執行時動態建立乙個類。這個函式來自 inside mac os x...

C 在執行時動態建立型別

c 在執行時動態的建立型別,這裡是通過動態生成c 源 然後通過編譯器編譯成程式集的方式實現動態建立型別 public static assembly newassembly n private system.componentmodel.icontainer components null npro...

執行時建立類

a.使用objc allocateclasspair建立乙個類class const char classname calculator class kclass objc getclass classname if kclass b.使用class addivar新增乙個成員變數 nsuinteg...