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

Edit 關閉後顏色問題

缺席
zoezoe
一般會員


發表:10
回覆:25
積分:12
註冊:2009-04-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-06-04 16:50:30 IP:60.248.xxx.xxx 訂閱
您好,我在Edit 屬性Enable = false 時

不管設定什麼顏色他一律都會成灰色的

我想要讓她false的時候也呈現黑色的字體~請問前輩們這該怎麼做
frontier
初階會員


發表:0
回覆:27
積分:30
註冊:2008-11-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-06-05 08:45:23 IP:59.125.xxx.xxx 訂閱

可以思考一下,為何用 Enable = false ,而不用 ReadOnly = true ?

===================引 用 zoezoe 文 章===================
您好,我在Edit 屬性Enable = false 時

不管設定什麼顏色他一律都會成灰色的

我想要讓她false的時候也呈現黑色的字體~請問前輩們這該怎麼做
zoezoe
一般會員


發表:10
回覆:25
積分:12
註冊:2009-04-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-06-05 09:02:12 IP:60.248.xxx.xxx 訂閱
我的程式有瀏覽及編輯兩個狀態~

當還沒按下編輯模式的時候~所有Edit都是呈現Enable = false 的狀態

為何我不用ReadOnly是因為還是可以去選取它,這樣會讓使用者誤以為可以編輯

所以我才要把Edit關起來,按下編輯模式時才打開。

現在是因為把Edit關起來的字變灰色的顯示不清楚不好看的關係才會問問各位前輩們有沒有辦法
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-06-05 13:55:42 IP:203.79.xxx.xxx 訂閱
這好像有點難,在TEdit 的 Event 沒有 onPaint 可以讓人家去重畫。

但有個賤招您參考一下

把 TEdit 設成 ReadOnly

再把 TEdit 的底色改成灰色,讓它看起來很像Disable 無法點選。雖然它實際上還能點選。

如果還是怕User去點到它時,就在它的 OnEnter Event中去把Focus 轉到別的地方去。這樣User永遠就點不到它了。


PS. 你原本的需求是要把 Disable 的 TEdit 字體變成黑色,可是如果變成黑色,不就跟未Disable的 TEdit 長的一模一樣,這樣User不是一樣也分不出來。


===================引 用 zoezoe 文 章===================
我的程式有瀏覽及編輯兩個狀態~

當還沒按下編輯模式的時候~所有Edit都是呈現Enable = false 的狀態

為何我不用ReadOnly是因為還是可以去選取它,這樣會讓使用者誤以為可以編輯

所以我才要把Edit關起來,按下編輯模式時才打開。

現在是因為把Edit關起來的字變灰色的顯示不清楚不好看的關係才會問問各位前輩們有沒有辦法
編輯記錄
carstyc 重新編輯於 2009-06-05 13:58:30, 註解 無‧
zoezoe
一般會員


發表:10
回覆:25
積分:12
註冊:2009-04-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-06-05 15:02:56 IP:60.248.xxx.xxx 訂閱
這個問題我有想過了,的確只能一直SetFocus到別的地方去了

未disabled的Edit 正常是白色可讓人輸入的,一按新增或修改,底色就會從灰色變白色並且SetFocus到修改點

自然使用者就不會搞混了,這才是我的用意所在。因為一開始的瀏覽畫面就已經帶資料進去了~加上本身一開始底色就是灰色

所以關掉之後再灰色就真的看不到了,現在也只有用像您說的一樣,先用ReadOnly再Focus到其他地方了。
===================引 用 carstyc 文 章===================
這好像有點難,在TEdit 的 Event 沒有 onPaint 可以讓人家去重畫。

但有個賤招您參考一下

把 TEdit 設成 ReadOnly

再把 TEdit 的底色改成灰色,讓它看起來很像Disable 無法點選。雖然它實際上還能點選。

如果還是怕User去點到它時,就在它的 OnEnter Event中去把Focus 轉到別的地方去。這樣User永遠就點不到它了。


PS. 你原本的需求是要把 Disable 的 TEdit 字體變成黑色,可是如果變成黑色,不就跟未Disable的 TEdit 長的一模一樣,這樣User不是一樣也分不出來。


===================引 用 zoezoe 文 章===================
我的程式有瀏覽及編輯兩個狀態~

當還沒按下編輯模式的時候~所有Edit都是呈現Enable = false 的狀態

為何我不用ReadOnly是因為還是可以去選取它,這樣會讓使用者誤以為可以編輯

所以我才要把Edit關起來,按下編輯模式時才打開。

現在是因為把Edit關起來的字變灰色的顯示不清楚不好看的關係才會問問各位前輩們有沒有辦法
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-06-05 18:53:49 IP:118.169.xxx.xxx 訂閱
依樣畫葫蘆
請參考
http://delphi.ktop.com.tw/board.php?cid=168&fid=1499&tid=98534

然後試試
void __fastcall TForm1::Button1Click(TObject *Sender)
{

HDC hdc;
Graphics::TBitmap *bmp = new Graphics::TBitmap();
hdc = GetDC(Edit1->Handle);
bmp->Width = Edit1->Width;
bmp->Height = Edit1->Height;

bmp->Canvas->Font->Color = clBlack;
bmp->Canvas->TextOutA(1, 1, "Edit1");

BitBlt(hdc, 0, 0, bmp->Width, bmp->Height,
bmp->Canvas->Handle, 0, 0, SRCAND);

delete bmp;
DeleteDC(hdc);

}
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-02-10 19:59:37 IP:203.75.xxx.xxx 未訂閱
如果使用TRichEdit,好像就可以解決這個問題了說
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2010-02-16 18:15:47 IP:124.10.xxx.xxx 訂閱
很簡單,把 Edit 放到 Panel 上,設定 Panel 的 Enabled 屬性為 False 就可以了
這樣 Edit 連帶的也變成 Disabled,但是顏色不會變,也不能被 focus
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#9 引用回覆 回覆 發表時間:2010-03-05 11:02:40 IP:203.75.xxx.xxx 未訂閱
不能同意你更多!

這方式真的有好用到

===================引 用 sryang 文 章===================
很簡單,把 Edit 放到 Panel 上,設定 Panel 的 Enabled 屬性為 False 就可以了
這樣 Edit 連帶的也變成 Disabled,但是顏色不會變,也不能被 focus
系統時間:2024-04-20 0:41:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!