全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1942
推到 Plurk!
推到 Facebook!

動態產生

答題得分者是:小傑克
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-10-15 21:27:52 IP:123.204.xxx.xxx 訂閱
如題,我動態產生了100個BUTTON,我有辦法讓他當隨機點擊可以出現自己的CAPTION。
但是如果我要點擊但是執行不同的程式該怎麼辦呢?
如果,我有一個陣列1到100,我要怎麼讓隨機點擊BUTTON,讀取對應的陣列內容,但CAPTION全部都一樣是空白?
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-10-16 00:52:13 IP:61.217.xxx.xxx 訂閱
利用button的保留property tag:integer
[code delphi]
procedure TForm1.Button1Click(Sender: TObject);
var b:TButton;
i:integer;

begin
for i := 0 to 99 do
begin
b := TButton.Create(self);
// parent , left ,top 等等設定
b.Tag := i;
b.OnClick := myBClick;
end;
end;
procedure TForm1.myBClick(Sender: TObject);
var s:string;
begin
s:='01234567890123456789012345678901234567890123456789'
'01234567890123456789012345678901234567890123456789';
ShowMessage( s[ (Sender as TButton).Tag ]);
end;
[/code]

===================引 用 boy330077 文 章===================
如題,我動態產生了100個BUTTON,我有辦法讓他當隨機點擊可以出現自己的CAPTION。
但是如果我要點擊但是執行不同的程式該怎麼辦呢?
如果,我有一個陣列1到100,我要怎麼讓隨機點擊BUTTON,讀取對應的陣列內容,但CAPTION全部都一樣是空白?
------
額有朝天骨,眼中有靈光
編輯記錄
小傑克 重新編輯於 2009-10-16 00:54:23, 註解 無‧
boy330077
一般會員


發表:39
回覆:59
積分:19
註冊:2009-10-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-10-16 13:01:01 IP:112.104.xxx.xxx 訂閱
感謝上述

但是 tag 是什麼 為什麼可以這樣運用?

如果我要取的是陣列裡的對應的內容

是不是改成
ShowMessage( a[ (Sender as TButton).Tag ]);
as TButton).Tag 也不是很清楚 到底該怎麼用


編輯記錄
boy330077 重新編輯於 2009-10-16 13:09:41, 註解 無‧
boy330077 重新編輯於 2009-10-16 13:19:38, 註解 無‧
小傑克
資深會員


發表:5
回覆:209
積分:357
註冊:2009-02-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-10-16 19:05:26 IP:59.112.xxx.xxx 訂閱
繼承自Tcomponent 的元件都有tag ,這只是方便程式人員多一個放資料的地方而已
Description
Tag has no predefined meaning. The Tag property is provided for the convenience of developers.
It can be used for storing an additional integer value or it can be typecast to any 32-bit value such as a component reference or a pointer.

因為 b.onC lick := myBClick; 是把onC lick 的event 用 myBClick 取代
Sender 就是引發這個event 的物件
(Sender as TButton) 就是把Sender 轉型成Button

所以(Sender as TButton) 轉型成 tbutton 以後就可以使用button 的 tag property

陣列就 a[ (Sender as TButton) .tag ]



===================引 用 boy330077 文 章===================

感謝上述

但是 tag 是什麼 為什麼可以這樣運用?

如果我要取的是陣列裡的對應的內容

是不是改成
ShowMessage( a[ (Sender as TButton).Tag ]);
asTButton).Tag 也不是很清楚 到底該怎麼用


------
額有朝天骨,眼中有靈光
系統時間:2024-05-16 19:48:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!