dbgrid裡查詢到的資料顯示在隨機上的edit上 |
尚未結案
|
paa
初階會員 ![]() ![]() 發表:50 回覆:101 積分:30 註冊:2005-02-01 發送簡訊給我 |
想做一個隨機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 發送簡訊給我 |
不知道是不是這樣哩!
參考參考嚕! 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 發送簡訊給我 |
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 發送簡訊給我 |
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 發送簡訊給我 |
|
paa
初階會員 ![]() ![]() 發表:50 回覆:101 積分:30 註冊:2005-02-01 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |