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

dbgrid裡查詢到的資料顯示在隨機上的edit上

尚未結案
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-13 16:51:22 IP:210.70.xxx.xxx 未訂閱
想做一個隨機3*3的edit,之後在dbgrid條件式的資料放在隨機的edit上,目前我條件式查詢出來二筆資料,放在隨機的edit上,卻只有第二筆的,沒有第一筆的,而且出來的是一個edit裡擠一筆的資料,而不是一個edit出現一個欄位。請高手幫我看看。 var Form1: TForm1; edi:array[0..4,0..4] of Tedit; const a1=100; a2=30; m=2; n=3; implementation procedure TForm1.Button6Click(Sender: TObject); var i,j: integer; begin //隨機產生edit雙行 for i:=0 to m do for j:=0 to n do begin edi[i][j]:=tedit.Create(owner); edi[i][j].Parent:=form1; edi[i][j].Text:=inttostr(i j); edi[i][j].Left:=30 40*i; edi[i][j].Top:=a2 j*30; edi[i][j].Width:=60; edi[i][j].Height:=30; edi[i][j].Show; end; end; procedure TForm1.Button7Click(Sender: TObject); var s,t,r,y,z,x,b,sum:string; i,j,q,w,o:integer; begin s:='Select * from tt'; if (edit5.Text <> '') then //<>不等於 s:=s ' where ' ' a ' ' like ' '"' '%' edit5.Text '%' '"'; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add(s); adoquery1.Open; dbgrid1.DataSource:=datasource1; i:=adoquery1.FieldCount; //欄位 j:=adoquery1.RecordCount; //筆數 for o:=0 to j do begin z:=adoquery1.FieldByName('c').AsString; x:=adoquery1.FieldByName('a').AsString; b:=adoquery1.FieldByName('b').AsString; adoquery1.Next; sum:=(z) (x) (b); end; for q:=0 to j do begin for w:=0 to i do begin edi[q][w].Text:=sum; end; end; end;
blueK
初階會員


發表:19
回覆:62
積分:36
註冊:2004-05-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-13 18:16:53 IP:203.67.xxx.xxx 未訂閱
不知道是不是這樣哩! 參考參考嚕! var Form1: TForm1; edi:array[0..4,0..4] of Tedit; const a1=100; a2=30; m=2; n=3; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,j: integer; begin //隨機產生edit雙行 for i:=0 to m do begin for j:=0 to n do begin edi[i][j]:=tedit.Create(owner); edi[i][j].Parent:=form1; edi[i][j].Text:=inttostr(i j); edi[i][j].Left:=60 100*i; edi[i][j].Top:=a2 j*30; edi[i][j].Width:=60; edi[i][j].Height:=30; edi[i][j].Show; end; end; end; procedure TForm1.Button2Click(Sender: TObject); var s,t,r,y,z,x,b,sum:string; i,j,q,w,o:integer; begin s:=' select Field1,Field2 from Table(nolock) '; //if (edit5.Text <> '') then //<>不等於 //s:=s ' where ' ' a ' ' like ' '"' '%' edit5.Text '%' '"'; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(s); ADOQuery1.Open; //dbgrid1.DataSource:=datasource1; i:=adoquery1.FieldCount; //欄位 j:=adoquery1.RecordCount; //筆數 ADOQuery1.First; for o:=0 to j do begin z:=adoquery1.FieldByName('Field1').AsString; x:=adoquery1.FieldByName('Field2').AsString; //b:=adoquery1.FieldByName('b').AsString; adoquery1.Next; sum:=(z) '-' (x); //for q:=0 to j do begin for w:=0 to i do begin edi[w][o].Text:=sum; end; //end; end; end; 發表人 - blueK 於 2005/07/13 18:19:12
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-13 18:28:36 IP:210.243.xxx.xxx 未訂閱
Dear paa:    我沒有實際run你的case,以下你試試    
  i:=adoquery1.FieldCount; //欄位
  j:=adoquery1.RecordCount; //筆數
  for o:=0 to j do begin
    z:=adoquery1.FieldByName('c').AsString;
    x:=adoquery1.FieldByName('a').AsString;
    b:=adoquery1.FieldByName('b').AsString;
    adoquery1.Next;
    sum:=(z) (x) (b);
    for q:=0 to j do begin
      for w:=0 to i do
      begin
        edi[q][w].Text:=sum;
      end;
    end;
  end;
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-14 10:38:27 IP:210.70.xxx.xxx 未訂閱
procedure TForm1.Button5Click(Sender: TObject); var i: integer; MyEdit: array [0..2] of TEdit; begin //隨機產生edit for i := 0 to 2 do begin MyEdit[i] := TEdit.Create(Form1); MyEdit[i].Text := IntToStr(i); MyEdit[i].Width := 30; MyEdit[i].Height := 10; MyEdit[i].Parent := Form1; MyEdit[i].Top := 8; MyEdit[i].Left := 8 i * 40; MyEdit[i].Visible := True; end;//隨機產生一筆資料 MyEdit[0].Text:=adoquery1.FieldByName('c').AsString; MyEdit[1].Text:=adoquery1.FieldByName('a').AsString; MyEdit[2].Text:=adoquery1.FieldByName('b').AsString; end; procedure TForm1.Button6Click(Sender: TObject); var i,j,k,u: integer; s:string; begin s:= 'Select * from tt '; if (edit5.Text <> '') then //<>不等於 s:=s ' where ' ' a ' ' like ' '"' '%' edit5.Text '%' '"'; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(s); ADOQuery1.Open; //dbgrid1.DataSource:=datasource1; i:=adoquery1.FieldCount; //欄位 j:=adoquery1.RecordCount; //筆數 //隨機產生edit雙行 for k:=0 to i do begin for u:=0 to j do begin edi[i][j]:=tedit.Create(owner); edi[i][j].Parent:=form1; edi[i][j].Text:=inttostr(i j); edi[i][j].Left:=60 100*i; edi[i][j].Top:=a2 j*30; edi[i][j].Width:=60; edi[i][j].Height:=30; edi[i][j].Show; end; end; end; procedure TForm1.Button7Click(Sender: TObject); var s,t,r,y,z,x,b,sum:string; i,j,q,w,o:integer; begin s:= 'Select * from tt '; if (edit5.Text <> '') then //<>不等於 s:=s ' where ' ' a ' ' like ' '"' '%' edit5.Text '%' '"'; ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(s); ADOQuery1.Open; //dbgrid1.DataSource:=datasource1; i:=adoquery1.FieldCount; //欄位 j:=adoquery1.RecordCount; //筆數 ADOQuery1.First; for o:=0 to j do begin z:=adoquery1.FieldByName('c').AsString; x:=adoquery1.FieldByName('a').AsString; b:=adoquery1.FieldByName('b').AsString; adoquery1.Next; sum:=(z) '-' (x) '-' (b); //for q:=0 to j do begin for w:=0 to i do begin edi[w][o].Text:=sum; end; //end; end; end;像我butto5隨機產生一筆,就ok,可是多筆的話,就不行了。
jimmy_wei
高階會員


發表:9
回覆:176
積分:147
註冊:2003-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-14 16:18:05 IP:210.243.xxx.xxx 未訂閱
其實我真的不是很懂你想要的.... 你是不是產生9個EDIT然後隨機... 放資料進去??
paa
初階會員


發表:50
回覆:101
積分:30
註冊:2005-02-01

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-14 21:50:20 IP:210.60.xxx.xxx 未訂閱
我已經寫出來了,謝謝。
系統時間:2024-06-02 21:47:34
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!