請問如何改進這段CODE? |
尚未結案
|
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
Q1:
程式部分 1),2)中除了SENTENCE 1,2 外,完全相同,請問有沒有將這兩部分合併簡寫的方法? Q2:'ADOQuery1‧Fields[1]‧asstring'有沒有類似'Query1‧FieldByName('xxx')‧AsString'的寫法, 不用數值 1,而用Field Name? Q3:清問有沒有方法將視窗中所有的EDIT 的 TEXT 清除的方法?
我的想法是:
FOR i:=0 TO COMPONENTCOUNT -1 DO
BEGIN
IF COMPONENTS[I]‧CLASSNAME='TEDIT' THEN
//在此清除TEXT
END;
1)with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from YONGHLX ');//SENTENCE 1
Open;
end;
if not ADOQuery1.IsEmpty then
BEGIN
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
ComboBox1.Items.Add(ADOQuery1.Fields[1].asstring);// SENTENCE 2
ADOQuery1.Next;
end;
END; 2) with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from HUAJLX ');//SENTENCE 1
Open;
end;
if not ADOQuery1.IsEmpty then
BEGIN
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
ComboBox2.Items.Add(ADOQuery1.Fields[2].asstring);// SENTENCE 2
ADOQuery1.Next;
end;
END;
end;
|
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
以上建議參考看看引言: Q1: 程式部分 1),2)中除了SENTENCE 1,2 外,完全相同,請問有沒有將這兩部分合併簡寫的方法? 在 private or public 內 設一Procedure 以供呼叫 procedure TForm1.AddComboBox(Query:TADOQuery; Cb:TComboBox; SQLCommand,FName:String); begin Query.Close; Query.SQL.Clear; Query.SQL.Add(SQLCommand); Query.Open; Query.First; while not Query.Eof do begin Cb.Items.Add(Query.FieldByName(FName).AsString); Query.Next; end; end; Q2:'ADOQuery1‧Fields[1]‧asstring'有沒有類似'Query1‧FieldByName('xxx')‧AsString'的寫法, 不用數值 1,而用Field Name? ADOQuery1.FieldByName('xxx').AsString 即可 Q3:清問有沒有方法將視窗中所有的EDIT 的 TEXT 清除的方法? 我的想法是: FOR i:=0 TO COMPONENTCOUNT -1 DO BEGIN IF COMPONENTS[I]‧CLASSNAME='TEDIT' THEN //在此清除TEXT END; for i:=0 to Form1.Componentcount-1 do if Form1.Components[i].Classtype=TEDit then TEdit(Form1.Components[i]).Text:=''; 1)//with ADOQuery1 do // begin // Close; // SQL.Clear; // SQL.Add('select * from YONGHLX ');//SENTENCE 1 // Open; // end; AddComboBox(ADOQuery1,ComboBox1,'select * from YONGHLX ','欄位1');//Call上面Procedure //if not ADOQuery1.IsEmpty then // BEGIN // ADOQuery1.First; // while not ADOQuery1.Eof do // begin // ComboBox1.Items.Add(ADOQuery1.Fields[1].asstring);// SENTENCE 2 // ADOQuery1.Next; // end; // END; 2) //with ADOQuery1 do // begin // Close; // SQL.Clear; // SQL.Add('select * from HUAJLX ');//SENTENCE 1 // Open; // end; AddComboBox(ADOQuery1,ComboBox2,'select * from HUAJLX ','欄位2');//Call上面Procedure //if not ADOQuery1.IsEmpty then // BEGIN // ADOQuery1.First; // while not ADOQuery1.Eof do // begin // ComboBox2.Items.Add(ADOQuery1.Fields[2].asstring);// SENTENCE 2 // ADOQuery1.Next; // end; // END; end; |
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
|
mathewzhao
中階會員 發表:121 回覆:164 積分:67 註冊:2003-04-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |