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

我有一個文本框數組Edit[1],Edit[2],Edit[3]怎麼得到當前的索引號呢?

答題得分者是:cashxin2002
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-07 10:27:27 IP:202.104.xxx.xxx 未訂閱
如: procedure TForm1.EditOnEnter(sender:Tobject); begin Edit[].SelStart:=0; Edit[].SelLength:=length(arredt[].Text); Edit[].SelText:=arredt[].text; end; '[]'裡面為當前索引號,他的值該怎麼得到呢? 一顆小菜
------
交流.學習
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-07 10:37:48 IP:61.30.xxx.xxx 未訂閱
你好: 在 VB 相同的元件會自動成為元件組,但 Delphi 中沒有這樣的機制。 如果你的 EditOnEnter 是共用的,可以透過 Sender 取得呼叫的物件。    
procedure TForm1.EditOnEnter(sender:Tobject);
begin
   if (Sender Is TEdit) then begin
      (Sender As TEdit).SelStart:=0;
      ...
      ...
   end;
end;
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-07 10:43:03 IP:61.155.xxx.xxx 未訂閱
tomc 兄: delphi中没有您所说的文本框數組,但可以这样实现您的效果 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure myclick(Sender: TObject); { Private declarations } public { Public declarations } end; var Form1: TForm1; edit:array[1..10] of tedit;//定义10个 implementation {$R *.dfm} //公共的事件,取得索引值 procedure tform1.myclick(Sender: TObject); begin showmessage(copy((Sender as tedit).name,5,length((Sender as tedit).name)-4)); end; //创建 procedure TForm1.FormCreate(Sender: TObject); var i:integer; begin for i:=1 to 10 do begin edit[i]:=tedit.Create(form1); edit[i].Name:='edit' inttostr(i); edit[i].Top :=i*20; edit[i].Parent :=form1; edit[i].OnClick :=myclick; edit[i].Visible :=true; end; end; end.
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-07 11:15:03 IP:218.18.xxx.xxx 未訂閱
感謝熱心幫助! 我是想在Edit控件得到焦點時自動全選文本框(文本框是一個數組)!用以下代碼,但是沒有作用! procedure TForm1.EditOnEnter(sender:Tobject); begin if (Sender Is TEdit) then begin begin (Sender As TEdit).SelStart:=0; (Sender As Tedit).SelLength:=length((Sender as tedit).Text); (Sender As Tedit).Seltext:=(Sender as tedit).Text; end; end; 以上代碼好像沒有起到作用! 一顆小菜
------
交流.學習
ha0009
版主


發表:16
回覆:507
積分:639
註冊:2002-03-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-07 11:28:05 IP:61.30.xxx.xxx 未訂閱
你好:
1. 看你的 Source 我想 Edit 與 arredt 是不同的物件吧
    >
( >    >    < src="http://sourceprovide.deepen.com.tw/K_Top/bp.gif">
        
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-08-07 11:45:20 IP:63.84.xxx.xxx 未訂閱
引言: 感謝熱心幫助! 我是想在Edit控件得到焦點時自動全選文本框(文本框是一個數組)!用以下代碼,但是沒有作用! procedure TForm1.EditOnEnter(sender:Tobject); begin if (Sender Is TEdit) then begin begin (Sender As TEdit).SelStart:=0; (Sender As Tedit).SelLength:=length((Sender as tedit).Text); (Sender As Tedit).Seltext:=(Sender as tedit).Text; end; end; 以上代碼好像沒有起到作用! 一顆小菜
您好﹒ 嗯﹐從你的問題來看﹐如果僅僅是為了做到Edit元件在取得焦點的時候﹐自動全選文本框的話(就是Edit中的內容吧)﹐可以參考其AutoSelect屬性﹐將其設為true﹐當使用Tab鍵使此Edit取得焦點時﹐就會將其內容全部選中了﹒ 如果要考慮當滑鼠點擊此Edit時﹐也要將其內容全部選中﹐即可在Edit元件的Onclick事件中下此Code﹕ Edit1.SelectAll; 有這么簡單嗎﹖可能小弟的理解錯誤﹐若是﹐敬請見諒﹗ 努力,相信會獲得美麗! 忻晟 發表人 -
------
忻晟
tomc
一般會員


發表:41
回覆:35
積分:15
註冊:2003-07-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-08-07 11:57:29 IP:218.18.xxx.xxx 未訂閱
感謝回應!小弟在這裡多謝幾位熱心同志了! 一顆小菜
------
交流.學習
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-08-07 12:18:12 IP:63.84.xxx.xxx 未訂閱
再補充一下﹕ 如果使用多個
------
忻晟
系統時間:2024-07-03 0:01:08
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!