為什麼第一次點選dbGrid, 它的來源dataset的RecNo總是指到第一筆? |
尚未結案
|
wangks
一般會員 發表:5 回覆:10 積分:3 註冊:2003-12-17 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
wangks
一般會員 發表:5 回覆:10 積分:3 註冊:2003-12-17 發送簡訊給我 |
引言: wangks您好 表面看起來,點DBGRID DataSet的RecNo會跟著變動,那是沒問題的, 另一個事件點, 在DataSet.AfterScroll事件,點選時候,也會觸發 因為您的描述,看不出來問題出在那兒, 或許您可以點少許關鍵程式碼, 讓我們幫您抓問題.我做了三個form 第一個是MDIForm, 把TQuery(Paradox的)放在這裡 第二個是MDIChild, 把第一個form的TQuery的查詢結果用dbgrid放到這裡 第三個是Normal, 擺了一些Edit(不是dbEdit) 我是在第二個form放一個「查詢」按鍵, 準備把現在dbGrid指到的那一筆紀錄, 相對應的TQuery內的資料全部放到第三個form的dbEdit群中 (也就是程式是放在第二個form裡面) 問題是我發現, 每次第一次按下「查詢」按鍵, 都發現那時的TQuery是停在第一筆, 可是第二次及以後按下去, 就又恢復正常 好玩的是, 我有試過, 在第二個form放一個「測試」按鍵, 只是純粹回應TQuery的RecNo, 卻又沒有問題.... 努力找問題, 努力找答案
------
努力找問題, 努力找答案 |
wangks
一般會員 發表:5 回覆:10 積分:3 註冊:2003-12-17 發送簡訊給我 |
目前是暫時先加上一些程式, 強制Query跑到應該在的地方, 去避開這個問題:
1.在form2加上一個數字變數: iRecNo
2.在form2的DBGrid1加上一個MouseUp事件的程式碼: (參考本站之前的討論區)
procedure Tform2.DBGrid1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var c:TGridCoord;
begin
c:=DBGrid1.MouseCoord(x,y);
iRecNo :=c.y;
end;
3.在form2的查詢按鍵一開始, 先加上一些程式碼:
with form1.Query1 do
if iRecNo <> RecNo then begin
first;
MoveBy(iRecNo - 1);
end; 努力找問題, 努力找答案
------
努力找問題, 努力找答案 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |