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

請問TMS AdvColumnGrid 如何用Enter控制游標移動Cell

答題得分者是:P.D.
heykris
一般會員


發表:2
回覆:5
積分:1
註冊:2012-03-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2014-10-28 12:05:08 IP:101.10.xxx.xxx 訂閱
各位前輩先進您好:
最近在使用TMS 的AdvColumnGrid,想控制操作方式,像Excel 一樣,按Enter鍵即可往右移一格,於
KeyDown的Event編寫如下:

Var
iCol, iRow : Integer;
begin
if (Key = VK_Return) then
begin
with DtlGrd do
begin
iCol := Col;
Inc(iCol);

if DtlGrd.Columns.Items[iCol].ReadOnly = True then Inc(iCol); //唯讀欄位
if iCol = ColCount then
begin
iCol := 1;
iRow := Row;
Inc(iRow);
if iRow = RowCount then iRow := 1;
Row := iRow;
end; //if iCol = ColCount then
Col := iCol;
end; //with DtlGrd do

end; //if (Key = VK_Return) then

結果按Enter,有些欄位變寬,游標所在Cell的框線也不見!

煩請指教!!謝謝!!


tuga
高階會員


發表:16
回覆:105
積分:104
註冊:2002-07-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2014-10-28 14:50:35 IP:218.161.xxx.xxx 訂閱
聽起來像是 Auto adjust column width , 我沒用過, 看看是不是這個 property

property AutoSize:boolean;
Description
:
setting the Autosize property to true, resizes all columns to widths so that all text just fits.

或是看一下, 有關 size 的部分
http://www.tmssoftware.com/ACGDOC.HTM#Properties

heykris
一般會員


發表:2
回覆:5
積分:1
註冊:2012-03-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2014-10-28 21:20:36 IP:115.80.xxx.xxx 訂閱
看過上面的properties,試過結果還是一樣,AutoSize反而會把畫面拉大....
P.D.
版主


發表:571
回覆:3884
積分:3672
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2014-10-28 22:03:29 IP:59.120.xxx.xxx 未訂閱
這個版區是屬於資料庫版區, 閣下所提出的問題, 具了解不屬於資料庫範圍, 是否重發到適用版區(如 vcl 元件)
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2014-10-28 22:18:51 IP:114.32.xxx.xxx 訂閱
已幫忙移動。

===================引 用 P.D. 文 章===================
這個版區是屬於資料庫版區, 閣下所提出的問題, 具了解不屬於資料庫範圍, 是否重發到適用版區(如 vcl 元件)
------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
P.D.
版主


發表:571
回覆:3884
積分:3672
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2014-10-28 23:21:16 IP:59.120.xxx.xxx 未訂閱
其實原本是想等提問者重新發到正確區後再回帖, 沒想到蕭大已處理了, OK! 沒關係啦

其實 TMS 的 GRID 不用這麼麻煩,
不管是 AdvStringGrid, 還是 AdvColumnGrid , TMS 都幫你處理好這個功能

你只要 Properities 中找到 Navigation 屬性,
再往下找到 AdvanceAuto 打開 (會連同 AdvacneOnEnter 一併打開)
然後 AdvanceDirection 有四種移動方式, 選擇 LeftRight 就可以在按下 Enter 時自動往右了

ps. 以上我是在付費的 TMS 元件上的結果(FOR WIN), PO網友未提到使用是那一種系列的 TMS或版本,
所以不清楚是否其他的TMS版本是否具有此功能
===================引 用 aftcast 文 章===================
已幫忙移動。

===================引 用 P.D. 文 章===================
這個版區是屬於資料庫版區, 閣下所提出的問題, 具了解不屬於資料庫範圍, 是否重發到適用版區(如 vcl 元件)
編輯記錄
P.D. 重新編輯於 2014-10-28 23:23:09, 註解 無‧
aftcast
站務副站長


發表:81
回覆:1482
積分:1762
註冊:2002-11-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2014-10-28 23:31:15 IP:114.32.xxx.xxx 訂閱
PD兄實在對tms與db很熟。我想這個解肯定很正確 (我馬後炮一下,我印象也是這樣可以解…)

; -)

===================引 用 P.D. 文 章===================

其實 TMS 的 GRID 不用這麼麻煩,
不管是 AdvStringGrid, 還是 AdvColumnGrid , TMS 都幫你處理好這個功能

你只要 Properities 中找到 Navigation 屬性,
再往下找到 AdvanceAuto 打開 (會連同 AdvacneOnEnter 一併打開)
然後 AdvanceDirection 有四種移動方式, 選擇 LeftRight 就可以在按下 Enter 時自動往右了

ps. 以上我是在付費的 TMS 元件上的結果(FOR WIN), PO網友未提到使用是那一種系列的 TMS或版本,
所以不清楚是否其他的TMS版本是否具有此功能
===================引 用 aftcast 文 章===================
已幫忙移動。

===================引 用 P.D. 文 章===================
這個版區是屬於資料庫版區, 閣下所提出的問題, 具了解不屬於資料庫範圍, 是否重發到適用版區(如 vcl 元件)
------



蕭沖
--All ideas are worthless unless implemented--

C++ Builder Delphi Taiwan G+ 社群
http://bit.ly/cbtaiwan
編輯記錄
aftcast 重新編輯於 2014-10-28 23:33:22, 註解 無‧
heykris
一般會員


發表:2
回覆:5
積分:1
註冊:2012-03-15

發送簡訊給我
#8 引用回覆 回覆 發表時間:2014-10-29 11:45:07 IP:49.214.xxx.xxx 訂閱
首先在這裡要跟各位先進抱歉!因為好久了才歸隊,一直以來習慣了資料庫這一版
謝謝你們幫我移版!

關於該Grid部分,那些設定確實有了,設定如下:
Navigation 底下...
AdvanceAuto = True
AdvanceDirection = adLeftRight
AdvanceOnEnter = True

但似乎是遇到ReadOnly的欄位,Cell的格線發生神隱,且會Autosize,讓該欄變寬....
我用的是Delphi7 TMS2007

再麻煩一下!!謝謝!!

編輯記錄
heykris 重新編輯於 2014-10-30 17:53:59, 註解 無‧
P.D.
版主


發表:571
回覆:3884
積分:3672
註冊:2006-10-31

發送簡訊給我
#9 引用回覆 回覆 發表時間:2014-10-30 22:00:39 IP:59.120.xxx.xxx 未訂閱
因為你詢問的是按enter可以到下一個欄位(右邊), 所以針對提問給予回答, 至於追加的問題, 我未曾遇過, 而且我未曾使用過ColumnGrid這個元件, 不清楚該元件的功能, 我都是用 AdvStringGrid或者AdvDBGrid 作業
===================引 用 heykris 文 章===================
首先在這裡要跟各位先進抱歉!因為好久了才歸隊,一直以來習慣了資料庫這一版
謝謝你們幫我移版!

關於該Grid部分,那些設定確實有了,設定如下:
Navigation 底下...
AdvanceAuto = True
AdvanceDirection = adLeftRight
AdvanceOnEnter = True

但似乎是遇到ReadOnly的欄位,Cell的格線發生神隱,且會Autosize,讓該欄變寬....
我用的是Delphi7 TMS2007

再麻煩一下!!謝謝!!

heykris
一般會員


發表:2
回覆:5
積分:1
註冊:2012-03-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2014-10-31 10:05:05 IP:101.10.xxx.xxx 訂閱
其實這兩個問題是一體兩面的,經測試,以TAB鍵移動,毫無疑問是順暢無誤,奇怪在Enter鍵出問題!
關於欄位自動拉寬,已找到解法,在SizeWhileTyping屬性的width設成False即可,但游標所在cell的格線仍神隱,按TAB則無此現象...
仍期待有先進指導一下,稍後就會結案,以免徒增問題...無論如何還是謝謝各位.....

編輯記錄
heykris 重新編輯於 2014-10-31 11:47:42, 註解 無‧
heykris
一般會員


發表:2
回覆:5
積分:1
註冊:2012-03-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2014-11-03 15:55:32 IP:49.218.xxx.xxx 訂閱
終於找到一項重要參數也必須設定:
將ExcelStyleDecimalSeparator 設成 True....

系統時間:2017-11-20 17:31:19
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!