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

delphi 語法的問題

答題得分者是:hagar
carter6
初階會員


發表:53
回覆:108
積分:42
註冊:2002-12-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-11 12:25:46 IP:211.74.xxx.xxx 未訂閱
請問各位假如我想這要做 delphi : DBedit1.Enabled := false ; DBedit2.Enabled := false ; DBedit3.Enabled := false ; DBedit4.Enabled := false ; DBedit5.Enabled := false ; DBedit6.Enabled := false ; DBedit7.Enabled := false ; DBedit8.Enabled := false ; DBedit9.Enabled := false ; DBedit10.Enabled := false; 可是我在 VFP 可以這樣下 i = 0 do while i < 11 i = i 1 istr = alltrim(str(i)) DBedit&istr..Enabled := .f. enddo 試問 delphi 是否也可以寫做類似寫法呢??
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-11 12:35:21 IP:147.8.xxx.xxx 未訂閱
Perhaps this question should be included in a FAQ? 
Rain
資深會員


發表:31
回覆:236
積分:268
註冊:2003-02-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-11 13:29:16 IP:218.5.xxx.xxx 未訂閱
介紹一個比較通用的統一設置一系列元件屬性的方法(不受元件名稱限制) Uses TypInfo; procedure xSetEnabled(F: TForm; const APropName: string = ''; const iTag: Integer = 0; const SetTrue: Boolean = True); const sPropName = 'Enabled'; var I: Integer; PropInfo: PPropInfo; begin with F do begin for I := 0 to ComponentCount - 1 do begin if APropName <> '' then PropInfo := GetPropInfo(Components[I].ClassInfo, APropName); if (APropName = '') or (PropInfo <> nil) then begin if (iTag = 0) or (Components[I].Tag = iTag) then SetOrdProp(Components[I], sPropName, Integer(SetTrue)); end; end; end; end; A,統一設置元件的Tag屬性(例如設置你這邊的DBedit1-DBedit10的Tag值為1),調用 xSetEnabled(Self, ‘’, 1, False); B,根據資料綁定元件公有屬性,調用 xSetEnabled(Self, ‘DataField’); //不止設置TDBEdit,如介面包括TDBComboBox或其他資料感知元件也一起設置 當然你也可以再更改上面的過程以滿足自己特定的需求。
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-11 17:58:54 IP:202.39.xxx.xxx 未訂閱
http://programmer.eforum2000.net/pc2020v5/forum/ShowSameTitle.asp?board_pc2020=delphi&index=9&id=12874&mode=&type_pc2020=sametitleLevel-2 --- Have you ever wondered what it would be like?
carter6
初階會員


發表:53
回覆:108
積分:42
註冊:2002-12-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-13 11:08:46 IP:61.59.xxx.xxx 未訂閱
各位的方法都很好 不知道還有沒有別種方式 能達到~~~ 謝謝各位的指導~~~
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-13 17:29:17 IP:211.21.xxx.xxx 未訂閱
我這個方法也是不受元件名稱限制,參考看看。
procedure TForm1.Button1Click(Sender: TObject);
var
  aComponent: Variant;
  I: Integer;
begin
  aComponent := VarArrayOf(['DBEdit1', 'DBEdit2']);
  for I := 0 to VarArrayHighBound(aComponent, 1) do
    TDBEdit(FindComponent(aComponent[I])).Enabled := False;
end;
~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
系統時間:2024-05-10 0:23:38
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!