delphi 語法的問題 |
答題得分者是:hagar
|
carter6
初階會員 發表:53 回覆:108 積分:42 註冊:2002-12-16 發送簡訊給我 |
請問各位假如我想這要做
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 發送簡訊給我 |
|
Rain
資深會員 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
介紹一個比較通用的統一設置一系列元件屬性的方法(不受元件名稱限制)
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 發送簡訊給我 |
|
carter6
初階會員 發表:53 回覆:108 積分:42 註冊:2002-12-16 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
我這個方法也是不受元件名稱限制,參考看看。
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;~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |