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

為什麼用了DBctrlGrid視窗會關不了?

缺席
it1506
初階會員


發表:30
回覆:83
積分:47
註冊:2011-02-16

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-09-12 13:13:35 IP:59.120.xxx.xxx 未訂閱
 用了DBctrlGrid
我在裡面的 onPaintPanel 事件
寫了下列程式碼

[code delphi]
請在此區域輸入程式碼
if Odd(index) then begin
DBCtrlGrd1.Color:=clSkyBlue;
end else begin
DBCtrlGrd1.Color:=clCream;
end;
[/code]

Q1 第一筆總是跟第2列同色 ...why??
Q2 按右上角的X 竟然無法關閉視窗 , 而是要按縮小那個 _ 才可以關

有人有這樣的情況嗎?


編輯記錄
it1506 重新編輯於 2013-09-12 13:15:01, 註解 無‧
it1506 重新編輯於 2013-09-12 13:15:44, 註解 無‧
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-09-12 14:51:11 IP:210.61.xxx.xxx 未訂閱
只針對第二個問題回答...

關不掉應該與DBCtrlGrd無關
應該是跟Close的部份有關
或是哪裡有寫什麼控制(Ex: TrayIcon)


===================引 用 it1506 文 章===================
用了DBctrlGrid
我在裡面的 onPaintPanel 事件
寫了下列程式碼

[code delphi]
請在此區域輸入程式碼
if Odd(index) then begin
DBCtrlGrd1.Color:=clSkyBlue;
end else begin
DBCtrlGrd1.Color:=clCream;
end;
[/code]

Q1 第一筆總是跟第2列同色 ...why??
Q2 按右上角的X 竟然無法關閉視窗 , 而是要按縮小那個 _ 才可以關

有人有這樣的情況嗎?


it1506
初階會員


發表:30
回覆:83
積分:47
註冊:2011-02-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-09-12 15:09:33 IP:59.120.xxx.xxx 未訂閱
整個程式
沒有在==================引 用 老大仔 文 章===================
只針對第二個問題回答...

關不掉應該與DBCtrlGrd無關
應該是跟Close的部份有關
或是哪裡有寫什麼控制(Ex: TrayIcon)


===================引 用 it1506 文 章===================
用了DBctrlGrid
我在裡面的 onPaintPanel 事件
寫了下列程式碼

[code delphi]
請在此區域輸入程式碼
if Odd(index) then begin
DBCtrlGrd1.Color:=clSkyBlue;
end else begin
DBCtrlGrd1.Color:=clCream;
end;
[/code]

Q1 第一筆總是跟第2列同色 ...why??
Q2 按右上角的X 竟然無法關閉視窗 , 而是要按縮小那個 _ 才可以關

有人有這樣的情況嗎?


P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-09-13 00:48:49 IP:59.120.xxx.xxx 未訂閱
DBCTRLGRID 與 DBGRID 是不同的元件, 你可以把DBGTRLGRID 看成一個容器, 這個容器內可以放 PANEL, 任何DB相關的元件進來, 然後把容器做複製成很多GRID 列示出來, DBGRID 是一個顯示表, 把記錄表格化顯示在畫面, 所以你無法指定DBGTRLGRID 可以有每一列有不同顏色, 其實就原生DBGRID 要有雙色顯示也是做不到的, 除非你自己去改寫這組元件
如果有人成功可以控制顏色顯示, 若能分享出來那就真的感激不盡!
KTOP有很多高手, 就看出不出手囉!
至少我是做不到的
===================引 用 it1506 文 章===================
用了DBctrlGrid
我在裡面的 onPaintPanel 事件
寫了下列程式碼

[code delphi]
請在此區域輸入程式碼
if Odd(index) then begin
DBCtrlGrd1.Color:=clSkyBlue;
end else begin
DBCtrlGrd1.Color:=clCream;
end;
[/code]

Q1 第一筆總是跟第2列同色 ...why??
Q2 按右上角的X 竟然無法關閉視窗 , 而是要按縮小那個 _ 才可以關

有人有這樣的情況嗎?


leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-09-14 10:11:31 IP:111.240.xxx.xxx 訂閱
用不著改寫元件吧
原本就有專有屬性控制顏色
DBGrid1DrawColumnCell

DBGrid
http://delphi.about.com/od/usedbvcl/l/aa031699.htm



DBCtrlGrid
http://www.greatis.com/delphicb/tips/lib/databases-colorctgrid.html
http://www.esanu.name/delphi/Components/TDBGrid/Different colors for the lines in the DBCtrlGrid.html


===================引 用 P.D. 文 章===================
DBCTRLGRID 與 DBGRID 是不同的元件, 你可以把DBGTRLGRID 看成一個容器, 這個容器內可以放 PANEL, 任何DB相關的元件進來, 然後把容器做複製成很多GRID 列示出來, DBGRID 是一個顯示表, 把記錄表格化顯示在畫面, 所以你無法指定DBGTRLGRID 可以有每一列有不同顏色, 其實就原生DBGRID 要有雙色顯示也是做不到的, 除非你自己去改寫這組元件
如果有人成功可以控制顏色顯示, 若能分享出來那就真的感激不盡!
KTOP有很多高手, 就看出不出手囉!
至少我是做不到的
===================引 用 it1506 文 章===================
用了DBctrlGrid
我在裡面的 onPaintPanel 事件
寫了下列程式碼

[code delphi]
請在此區域輸入程式碼
if Odd(index) then begin
DBCtrlGrd1.Color:=clSkyBlue;
end else begin
DBCtrlGrd1.Color:=clCream;
end;
[/code]

Q1 第一筆總是跟第2列同色 ...why??
Q2 按右上角的X 竟然無法關閉視窗 , 而是要按縮小那個 _ 才可以關

有人有這樣的情況嗎?


herbert2
尊榮會員


發表:58
回覆:632
積分:878
註冊:2004-04-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2013-09-27 17:40:20 IP:202.39.xxx.xxx 訂閱
Q1 第一筆總是跟第2列同色 ...why??

因 PanelIndex 從 0 開始, Odd(0) 可能傳回 False 或 NULL (我沒 Delphi 可以測),請改寫成:
if Odd(PanelIndex 1) then begin
DBCtrlGrd1.Color:=clCream;
end else begin
DBCtrlGrd1.Color:=clSkyBlue;
end;
可能就 OK!

Form 無法 Colse?

請於 FormCloseQuery 時,加上一句:
DBCtrlGrid1.PaintPanel := NULL;
令其 Event 先失效,或許可以解決。

it1506
初階會員


發表:30
回覆:83
積分:47
註冊:2011-02-16

發送簡訊給我
#7 引用回覆 回覆 發表時間:2013-10-02 08:57:59 IP:59.120.xxx.xxx 未訂閱
pascal很奇怪...null 一堆語言都有

就是pascal沒有, 它在裡面叫 nil , 然後他的nil跟null又不同...
null是一個值 , nil是一個對象

很奇怪吧...

然後...你講的方式無效 ,

最奇怪的事...就是按下右上角的縮小鍵 _ 後

竟然會跑 onclose 跟 onclosequery 的事件

dbctrlgrid 那個變色的我想放棄了....

沒用那個事件的話,一切都會正常

就當做delphi的bug吧

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