線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:726
推到 Plurk!
推到 Facebook!

請問如何改進這段CODE?

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-27 20:22:25 IP:61.150.xxx.xxx 未訂閱
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-27 22:48:42 IP:211.76.xxx.xxx 未訂閱
引言: 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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-05 13:29:10 IP:61.150.xxx.xxx 未訂閱
感謝前輩cmj的指點! 將視窗中所有的EDIT 的 TEXT 清除的方法,除前輩給出的外,晚輩還找到另一個方法(利用 is operator),特貼在下面以示謝意。 FOR i:=0 TO COMPONENTCOUNT -1 DO BEGIN if component[i] is Tedit then TEdit(Form1.Components[i]).Text:=''; end; 轉譯 校對: 0.1100秒
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-05 13:29:22 IP:61.150.xxx.xxx 未訂閱
感謝前輩cmj的指點! 將視窗中所有的EDIT 的 TEXT 清除的方法,除前輩給出的外,晚輩還找到另一個方法(利用 is operator),特貼在下面以示謝意。 FOR i:=0 TO COMPONENTCOUNT -1 DO BEGIN if component[i] is Tedit then TEdit(Form1.Components[i]).Text:=''; end;
系統時間:2024-07-01 12:39:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!