掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
OwnerDraw時のComboBoxの高さについて (ID:6800)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あらかじめComboBox1.Items.Addで2つの項目をタブ(#8)を挟んで代入しておき、DrawItemイベントで下記のように少し距離を置いて2つの項目を表示するようにしました。 今回、上司から文字が小さいと言われ、ComboBox1のフォントサイズを変えてみたところ、ComboBox1のStyleプロパティにcsOwnerDrawVariableを指定した場合、Heightプロパティが変更できないようで、ComboBox1の高さより文字がはみ出してしまいました。 DrawItemイベントでComboBox1の高さを変更するにはどうしたら良いのでしょうか? ちなみに下記のソースは以前書籍かサイトを調べて書いたソースを流用したと思います。 procedure TfrmOrder.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var n : Integer; Item1, Item2 : String; begin // TABで2つの文字列に分解する n := Pos(#8, ComboBox1.Items[Index]); Item1 := Copy( ComboBox1.Items[Index], 1 , n-1 ); Item2 := Copy( ComboBox1.Items[Index], n+1 , Length(ComboBox1.Items[Index]) - n ); with ComboBox1.Canvas do begin // デフォルトの表示を塗りつぶして消す FillRect(Rect); // 線を引く MoveTo(Rect.Left + 50, Rect.Top); MoveTo(Rect.Left + 50, Rect.Bottom); // 項目を表示させる TextOut(Rect.Left + 2, Rect.Top, Item1 ); TextOut(Rect.Left + 52, Rect.Top, Item2 ); end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.