這題Delphi的查詢修改怎麼寫… |
|
jkyn
一般會員 發表:3 回覆:2 積分:1 註冊:2006-11-11 發送簡訊給我 |
Form裡有StringGrid、四個Button(分別為開始、執行、修改、確定修改)、四個Edit(分別為座號、國文、英文、數學)。
在Form裡寫… var i,j:integer; begin stdnum:=5; a[1,1]:=1; a[1,2]:=50; a[1,3]:=60; a[1,4]:=60; a[2,1]:=2; a[2,2]:=30; a[2,3]:=40; a[2,4]:=50; a[3,1]:=3; a[3,2]:=70; a[3,3]:=80; a[3,4]:=90; a[4,1]:=4; a[4,2]:=66; a[4,3]:=77; a[4,4]:=88; a[5,1]:=5; a[5,2]:=22; a[5,3]:=33; a[5,4]:=44; a[6,1]:=0; a[6,2]:=0; a[6,3]:=0; a[6,4]:=0; stringgrid1.Cells[0,0]:='座號'; stringgrid1.cells[1,0]:='國文'; stringgrid1.cells[2,0]:='英文'; stringgrid1.cells[3,0]:='數學'; stringgrid1.cells[4,0]:='平均'; stringgrid1.cells[5,0]:='名次'; stringgrid1.cells[6,0]:='不及格科數'; for i:=1 to stdnum do for j:=1 to 4 do stringgrid1.cells[j-1,i]:=Inttostr(a[i,j]); end; 在開始的Button寫… var i,j,k:integer; begin for j:=1 to stdnum do begin for k:=2 to 4 do a[j,5]:=a[j,5] a[j,k]; a[j,5]:=a[j,5] div 3; end; for j:=1 to stdnum do a[j,6]:=1; for j:=1 to stdnum do for k:=j 1 to stdnum do begin if a[j,5]a[j,6]:=a[j,6] 1 else a[k,6]:=a[k,6] 1; end; for j:=1 to stdnum do for k:=2 to 4 do begin if a[j,k]<60 then a[j,7]:=a[j,7] 1; end; for j:=2 to 5 do begin for k:=1 to stdnum do a[stdnum 1,j]:=a[stdnum 1,j] a[k,j]; a[stdnum 1,j]:=a[stdnum 1,j] div stdnum; end; for i:=1 to stdnum 1 do for j:=1 to 7 do stringgrid1.cells[j-1,i]:=inttostr(a[i,j]); stringgrid1.cells[0,stdnum 1]:='平均'; end; 問題是… 我要怎麼在輸入座號後按執行Button時,國文、英文、數學會分別呈現在各自的Edit而且是鎖住不讓人修改,而按修改後就可以但座號卻鎖住、在修改所要的分數後按確定修改Button後國文、英文、數學的Edit鎖住而座號的鎖卻打開… 我想了很久了…寫不出來就是寫不出來…那位大大可以幫幫忙… |
BOSS
中階會員 發表:70 回覆:79 積分:64 註冊:2006-11-01 發送簡訊給我 |
1.執行
for i := 1 to 7 do begin if a[i,1] = StrToInt(Edit1.Text) then begin Edit2.Enabled:=False; Edit3.Enabled:=False; Edit4.Enabled:=False; Edit2.Text:=IntToStr(a[i,2]); Edit3.Text:=IntToStr(a[i,3]); Edit4.Text:=IntToStr(a[i,4]); end; end; 2.修改 Edit1.Enabled:=False; Edit2.Enabled:=True; Edit3.Enabled:=True; Edit4.Enabled:=True; 3.確定修改 Edit1.Enabled:=True; Edit2.Enabled:=False; Edit3.Enabled:=False; Edit4.Enabled:=False; StringGrid1.Cells[1,StrToInt(Edit1.Text)]:=Edit2.Text; StringGrid1.Cells[2,StrToInt(Edit1.Text)]:=Edit3.Text; StringGrid1.Cells[3,StrToInt(Edit1.Text)]:=Edit4.Text; |
BOSS
中階會員 發表:70 回覆:79 積分:64 註冊:2006-11-01 發送簡訊給我 |
1.執行
for i := 1 to 7 do begin if a[i,1] = StrToInt(Edit1.Text) then begin Edit2.Enabled:=False; Edit3.Enabled:=False; Edit4.Enabled:=False; Edit2.Text:=IntToStr(a[i,2]); Edit3.Text:=IntToStr(a[i,3]); Edit4.Text:=IntToStr(a[i,4]); end; end; 2.修改 Edit1.Enabled:=False; Edit2.Enabled:=True; Edit3.Enabled:=True; Edit4.Enabled:=True; 3.確定修改 Edit1.Enabled:=True; Edit2.Enabled:=False; Edit3.Enabled:=False; Edit4.Enabled:=False; StringGrid1.Cells[1,StrToInt(Edit1.Text)]:=Edit2.Text; StringGrid1.Cells[2,StrToInt(Edit1.Text)]:=Edit3.Text; StringGrid1.Cells[3,StrToInt(Edit1.Text)]:=Edit4.Text; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |