procedure 問題 |
尚未結案
|
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
如有一功能是把大於 10 的數設置為 10 的, 如下 :
procedure TForm(num:integer);
begin
if (num > 10) then Edit1.Text:='10';
end; 現有 10 個 Edit1 .. Edit10, 但我不可能寫 10 個 procedure 出來的
在 procedure 中的 Edit1.text 的位置能不能用什麼來作動態改變 ??
即 XXX.text 而 XXX 可隨時代入 Edit1 .. Edit10 , Delphi 可以這樣做嗎 ?
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
看你的問題好像是要依條件動態選擇 Edit 是嗎< > 你參考看看< > 1. 設置一個物件陣列,使用陣列存取。
var EditAry : array [1..10] of TEdit; procedure TForm1.FormCreate(Sender: TObject); begin EditAry [1] := Edit1; EditAry [2] := Edit1; EditAry [3] := Edit1; EditAry [4] := Edit1; EditAry [5] := Edit1; EditAry [6] := Edit1; EditAry [7] := Edit1; EditAry [8] := Edit1; EditAry [9] := Edit1; EditAry [10] := Edit1; end;2. 透過物件名稱取得物件。 procedure TForm1.test; var edit : TEdit; begin edit := FindComponent(format ('Edit%d', [i])); if edit <> nil then begin edit.text := 10; end; end;以上方式也可搭配使用,端看你的環境與需要。 |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
ha0009
版主 發表:16 回覆:507 積分:639 註冊:2002-03-16 發送簡訊給我 |
你好:
你的說明讓我很難理解,如果按照你最後說的要求,提供下列的程式碼供你試試
< class="code">
unit MainSrc; interface uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ActnList, Menus, OleCtrls, SHDocVw, ComCtrls, ToolWin, StdCtrls,
DB, ADODB, Grids, DBGrids, ExtCtrls, shellAPI;
type
TForm1 = class(Forms.TForm)
procedure FormCreate(Sender: TObject);
private
procedure edit_OnChange(Sender: TObject);
public
end; implementation procedure TForm1.FormCreate(Sender: TObject);
var
i : integer;
edit : TEdit;
begin
// 動態建立的 TEdit 物件
for i := 1 to 10 do begin
edit := TEdit.Create(self);
edit.parent := self;
edit.top := i * 30;
edit.left := 10;
edit.OnChange := edit_OnChange;
end;
end; procedure TForm1.edit_OnChange(Sender: TObject);
begin
if not (Sender is TEdit) then system.exit; // 判斷 Sender 是不是 TEdit 物件。
(Sender as TEdit).Text := '10'; // Sender 就是呼叫 OnChange 事件的 TEdit 物件本身。
end;
end;
|
vernon
一般會員 發表:27 回覆:26 積分:10 註冊:2003-05-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |