DBGRID 的 PickList 可以使用 CB_SETDROPPEDWIDTH嗎? |
答題得分者是:Rain
|
kakene
一般會員 ![]() ![]() 發表:22 回覆:52 積分:19 註冊:2003-01-07 發送簡訊給我 |
|
Rain
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
納悶,您說的問題好象不存在,DBGrid的 Column在下拉時會自適應寬度,如果有文本長度大於寬度會自己進行調整,它的下拉清單是TListBox,看看TInplaceEditList.DropDown;過程的代碼,已經有進行處理的:
J := PickList.ClientWidth; for I := 0 to PickList.Items.Count - 1 do begin Y := PickList.Canvas.TextWidth(PickList.Items[I]); if Y > J then J := Y; end; PickList.ClientWidth := J; |
kakene
一般會員 ![]() ![]() 發表:22 回覆:52 積分:19 註冊:2003-01-07 發送簡訊給我 |
引言: 納悶,您說的問題好象不存在,DBGrid的 Column在下拉時會自適應寬度,如果有文本長度大於寬度會自己進行調整,它的下拉清單是TListBox,看看TInplaceEditList.DropDown;過程的代碼,已經有進行處理的:但是我測試的結果並不如前輩所言,是有比原本欄位大,但是所有的文字並不能全部顯示出來...J := PickList.ClientWidth; for I := 0 to PickList.Items.Count - 1 do begin Y := PickList.Canvas.TextWidth(PickList.Items[I]); if Y > J then J := Y; end; PickList.ClientWidth := J; |
Rain
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
你好:
沒錯,你說的情況確實存在,我重新試了一下,DBGrid用默認字體時正常,但換了一種字體後就會沒辦法完全顯示出來,我重新看了一下Delphi的代碼,發現有出入,應該是一個BUG:
我把Grids單元的TInplaceEditList.DropDown過程改了一下,你編譯一下該單元然後把Grids.dcu文件覆蓋掉$Delphi/lib下原文件就沒問題了。
procedure TInplaceEditList.DropDown; var P: TPoint; I,J,Y: Integer; begin … TPopupListbox(PickList).Color := Color; TPopupListbox(PickList).Font := Font; PickList.Canvas.Font := Font;//增加這一行即可 … J := PickList.ClientWidth; for I := 0 to PickList.Items.Count - 1 do begin Y := PickList.Canvas.TextWidth(PickList.Items[I]); if Y > J then J := Y; end; PickList.ClientWidth := J 2 ;//顯示的不是很完全,加上2,這個地方可改可不改 end; … end; |
kakene
一般會員 ![]() ![]() 發表:22 回覆:52 積分:19 註冊:2003-01-07 發送簡訊給我 |
|
Rain
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
|
kakene
一般會員 ![]() ![]() 發表:22 回覆:52 積分:19 註冊:2003-01-07 發送簡訊給我 |
|
Rain
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:31 回覆:236 積分:268 註冊:2003-02-17 發送簡訊給我 |
|
kakene
一般會員 ![]() ![]() 發表:22 回覆:52 積分:19 註冊:2003-01-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |