新開乙個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...