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

DBGRID 按Tab 不會跳下一欄位,會跳到下一筆??

尚未結案
jeffreck
高階會員


發表:247
回覆:340
積分:197
註冊:2003-01-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-07-29 18:24:19 IP:61.218.xxx.xxx 未訂閱
請教各位前輩! DBGRID 按Tab 不會跳下一欄位,會跳到下一筆?? 當 DBGIRD1.ReadOnly :=True; ......... DBGIRD1.ReadOnly :=False; 之後 DBGRID 按Tab 就不會跳下一欄位,會跳到下一筆?? 在 DBGIRD1.ReadOnly :=True; 之前都不會這樣 謝謝各位前輩!!
NILSAN
一般會員


發表:5
回覆:11
積分:3
註冊:2003-11-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-07-29 23:02:51 IP:203.204.xxx.xxx 未訂閱
試試將DBGRID.READONLY變為FALSE..並將DBGRID.OPTIONS.DGEDITING變為FALSE 和DBGRID.OPTIONS.DGTABS變為TRUE...應該就可以了ㄅ...我的DBGRID都是如此設定...按TAB才會跳下一欄位!! ------------------------------------------------------------------ 試試看ㄅ...
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-07-30 00:08:47 IP:219.129.xxx.xxx 未訂閱
jeffreck您好: 参考下面解释: http://www.delphibbs.com/delphibbs/dispq.asp?lid=230577 Nose大大的解答 也许是Delphi的Bug,跟踪进去你可以发现
 
procedure Tab(GoForward: Boolean);
  var
    ACol, Original: Integer;
  begin
    ACol := Col;
    Original := ACol;
    BeginUpdate;    { Prevent highlight flicker on tab to next/prior row }
    try
      while True do  //无条件循环
      begin
        if GoForward then
          Inc(ACol) else
          Dec(ACol);
        if ACol >= ColCount then  //最后从此退出,移动到下一Row
        begin
          NextRow(False);
          ACol := FIndicatorOffset;
        end
        else if ACol < FIndicatorOffset then
        begin
          PriorRow(False);
          ACol := ColCount - FIndicatorOffset;
        end;
        if ACol = Original then Exit;
        if TabStops[ACol] then   //如果一开始设为ReadOnly=True ,返回总是False,所以没有右移动。
        begin
          MoveCol(ACol, 0);
          Exit;
        end;
      end;
    finally
      EndUpdate;
    end;
  end;  
——行径窄处,留一步与人行—— ——Never give up, never surrender——
系統時間:2024-05-14 3:49:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!