當前位置:成語大全網 - 書法字典 - delphi7如何定義控件數組並獲取下標?

delphi7如何定義控件數組並獲取下標?

我給妳做了壹個演示:我自己加了壹些功能。

先看效果圖:

{————————————華麗的分割線開始了—————

單位?unit 1;

連接

使用

Windows,?消息?SysUtils?變種?班級?圖形,?控件,?表格,

對話?StdCtrls,?ExtCtrls

類型

TForm1?=?類別(t表單)

scrBox1:?TScrollBox

pnl1:?TPanel

btn1:?t按鈕;

edt2:?TEdit

lbl1:?TLabel

程序?btn1Click(發件人:?to object);

程序?FormCreate(發件人:?to object);

程序?SCR box 1調整大小(發件人:?to object);

程序?scrBox1MouseWheelDown(發件人:?to object;?Shift:?TShiftState

?MousePos:?TPoint?var?處理:?布爾);

程序?scrBox1MouseWheelUp(發件人:?to object;?Shift:?TShiftState

?MousePos:?TPoint?var?處理:?布爾);

私人的

btn:?t按鈕;

FList:?TList?//定義壹個TList變量來加載按鈕。

{?私人?申報?}

程序?SetPosition

程序?btnClick(發件人:?to object);

公眾的

{?公共?申報?}

結束;

定義變量

Form1:?t form 1;

履行

{$R?*.dfm}

{調整位置}

程序?TForm1。SetPosition

定義變量

intLeft,?intTop:?整數;

intCount:?整數;

開始

intLeft?:=?20;

intTop?:=?20;

為了什麽?intCount?:=?0?去哪?fList。數數?-?1?做

開始

btn?:=?FList。items[int count];

如果?intLeft?+?btn。寬度?& gt?scrBox1。寬度?然後

開始

?intLeft?:=?20;

?intTop?:=?intTop?+?btn。身高?+?20;

結束;

btn。向左?:=?intLeft

btn。Top?:=?intTop

intLeft?:=?intLeft?+?btn。寬度?+?20;

結束;

結束;

-單擊按鈕開始創建。

程序?TForm1.btn1Click(發送方:?to object);

定義變量

intCount:?整數;

開始

如果?StrToIntDef(edt2。文字,?1)?& gt?1000?然後

開始

如果?MessageBox(句柄,PChar)按鍵輸入太多,電腦會卡!!!+#10#13+'是否要繼續?' ),?提示',?MB_ICONINFORMATION?+?MB_YESNO)?=?mrNo?然後

?退出;

結束;

{如果FList已經有對象,請先釋放它}

如果?已分配(FList)?然後

為了什麽?intCount?:=?0?去哪?FList。數數?-?1?做

?to object(FList[int count])。免費;

FList。清晰;?//釋放後,清除指針,即nil(這行代碼很重要,否則會出錯!)

{默認情況下創建按鈕}

為了什麽?intCount?:=?1?去哪?StrToIntDef(edt2。文字,?1)?做

開始

btn?:=?t按鈕。創建(無);?//創建壹個控件(當參數為self時,不需要手動釋放,關閉窗體後會自動釋放)。

FList。添加(BTN);?//將創建的按鈕放入FList。

SetPosition?//調整位置

btn。父母?:=?SCR box 1;?//顯示在ScrollBox上(這行代碼很關鍵,沒有它就不會顯示)

btn。標題?:=?按鈕'+?int tostr(int count);

btn。OnClick?:=?btnClick?//動態創建按鈕的click事件。

結束;

scrBox1。SetFocus

結束;

給點,妳就貼完了。。。

{————————————華麗的分割線兩端————

PS: 1。至於以上FList變量的功能和用法,請自行查找;

2.我沒有用動態數組,用的TList類更靈活;

3.我演示的按鈕可以隨著窗口和位置的變化而變化,妳自己試試;

4.您可以創建任何按鈕,但不要輸入太多按鈕。如果電腦配置不正確,就會卡死。

我用Delphi2007,只要妳不用Delphi?XE(2),其他都應該沒問題;

6.不懂再問;

7.代碼貼出來了,發現沒得分。我很沮喪。搞什麽鬼!提問不給分,白費勁。

需要完整代碼,請加50分!!!