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

Dbgrid 欄位移動問題

尚未結案
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-24 12:03:59 IP:61.221.xxx.xxx 未訂閱
各位好 !! 請各位 高手解答  THANKS    圖1:共有 101 個欄位(總合計) 圖2: (輸入欄位) EX.當USER在圖2 55欄位輸入時, 圖1總合計的 DBGRID焦點 也在 55欄位!! < >< >
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-09-24 12:41:01 IP:203.95.xxx.xxx 未訂閱
看你的圖好像不是很清楚. 可以再敍述清楚一點嗎?
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-09-24 13:54:52 IP:61.221.xxx.xxx 未訂閱
感謝 timhuang 的 回覆 圖1 dbgrid1 跟 圖2 dbgrid2 的 datasource 都不一樣 我的 意思是說 我想 保持兩個 dbgrid 的 欄位 保持一至 也就是說不管我 focus 在 dbgrid2 那一個欄位    dbgrid2 跟 dbgrid1 欄位 排列(名稱)都是一至    
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-09-24 14:16:10 IP:63.84.xxx.xxx 未訂閱
您好﹗    請您將兩個DBGrid的Option屬性中的dgAlwaysShowSelection屬性值設定為True﹐以用作觀察兩個DBGrid的的當前欄位顯示﹒    在DataSource1元件(對應DBGrid1)的OnDataChange事件中﹕
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  DBGrid2.SelectedField := DBGrid1.SelectedField;
end;
當您在移動DBGrid1中的欄位時﹐DBGrid2中的欄位也會做對應的移動﹒ 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟 發表人 - cashxin2002 於 2003/09/24 14:19:04
------
忻晟
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-09-24 14:35:38 IP:218.163.xxx.xxx 未訂閱
試試看 :
type DumClass=class(TCustomGrid);
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin
  if TDBGrid(Sender).Name = 'DBGrid1' then begin
    DumClass(DBGrid2).FGridState := gsSelecting;
    DumClass(DBGrid2).FocusCell(DumClass(Sender).Col,DumClass(DBGrid2).Row,True);
    DumClass(DBGrid2).FGridState := gsNormal;
  end
  else begin
    DumClass(DBGrid1).FGridState := gsSelecting;
    DumClass(DBGrid1).FocusCell(DumClass(Sender).Col,DumClass(DBGrid1).Row,True);
    DumClass(DBGrid1).FGridState := gsNormal;
  end;
end;
DBGrid1 及 DBGrid2 的 OnColumnEnter 都可以接向此 Procedure.
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-09-24 15:23:08 IP:61.221.xxx.xxx 未訂閱
我剛試了 cashxin2002 跟 Mickey 的 方法都沒法動耶 ??    一般情況 dbgrid1 & dbgrid2 的欄位 不一致 想得到的狀況,不管dbgrid2 怎樣移動dbgrid1 跟 dbgrid2一致 dbgrid1 dbgrid2
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-09-24 15:40:19 IP:63.84.xxx.xxx 未訂閱
您好﹗    沒動﹖不會吧﹐小弟有試過無誤﹒ 小弟的測試環境如下﹕ 1﹒一個ADOTable元件(ADOTable1并通過ADOConnection元件正常連接上資料庫﹐處開啟狀態) 2﹒兩個DataSource元件(DataSource1和DataSource2)都連接上ADOTable11 3﹒兩個DBGrid元件(DBGrid1和DBGrid2)﹐分別對應DataSource1和DataSource2﹐并將其Option屬性中的dgAlwaysShowSelection屬性值設為True.    以上設定完成之后﹐即可在DBGrid1和DBGrid2中正常顯示同樣內容的資料﹐再將如下程式碼寫在DataSource1的OnDataChange事件中﹕
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  DBGrid2.SelectedField := DBGrid1.SelectedField;
end;
當您在移動DBGrid1的當前資料時﹐DBGrid2中的當前資料也會做對應的移動﹒小弟是以DBGrid1的移動來帶動DBGrid2的移動﹐看您的問題好像是當在DBGrid2中移動時帶動DBGrid1的移動﹐若是這樣的話﹐請您做适當的調整﹒ 小弟看您的貼圖中﹐似乎有整行選中的情況﹐請將DBGrid元件Option屬性中的dgRowSelection屬性值設為Flase. 參考看看﹗ ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-09-24 15:57:19 IP:61.221.xxx.xxx 未訂閱
感謝 cashxin2002 再次回覆 THANKS 可能是 我表達的 不清楚 !! 2﹒兩個DataSource元件(DataSource1和DataSource2)都連接上ADOTable11 DataSource1 使用 Query1 SQL 做 SUM 合計 DataSource2 連上 ADOTable1 當USER在dbgrid2 A055欄位輸入時, dbgrid1(合計) 的欄位 也在 A055 這樣 USER 就不用移動dbgrid1 游標移動到 A055 欄位了!! 希望 這樣表達 能 更清楚些!!
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-09-24 20:40:07 IP:218.32.xxx.xxx 未訂閱
如果你希望的是, 二個 DBGrid, 的欄位完全一致...修改一下 :
type DumClass=class(TCustomGrid);
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
var LC : integer;
begin
  LC:=DumClass(Sender).LeftCol;
  if TDBGrid(Sender).Name = 'DBGrid1' then begin
    DumClass(DBGrid2).FGridState := gsSelecting;
    DumClass(DBGrid2).FocusCell(DumClass(Sender).Col,DumClass(DBGrid2).Row,True);
    DumClass(DBGrid2).FGridState := gsNormal;
    DumClass(DBGrid2).LeftCol := LC;
  end
  else begin
    DumClass(DBGrid1).FGridState := gsSelecting;
    DumClass(DBGrid1).FocusCell(DumClass(Sender).Col,DumClass(DBGrid1).Row,True);
    DumClass(DBGrid1).FGridState := gsNormal;
    DumClass(DBGrid1).LeftCol := LC;
  end;
end;
miguel
一般會員


發表:26
回覆:20
積分:9
註冊:2002-03-30

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-09-25 11:10:29 IP:61.221.xxx.xxx 未訂閱
感謝 Mickey 兄的 回覆!! 終於 解決 我的 問題了,真是太感謝 妳了 !!  < >< >
系統時間:2024-07-02 0:18:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!