スタイル プロパティをcsOwnerDrawFixedに設定してTComboBoxコンポーネントを使用しています。OnDrawItemを実装しています。すべて正常に動作します。次に、 csDropDownスタイルがあったときのように動作するコンボ ボックスが必要です (csOwnerDrawFixed スタイルでは、csDropDownList スタイルのように動作します)。つまり、内部エディターを使用しています。これは可能ですか?
質問する
3290 次
2 に答える
8
Delphi の TComboBox ラッパーはオーナー描画編集可能スタイルをサポートしていませんが、基本的な Windows コントロールはサポートしており、簡単に有効にできます。
次のように新しい子孫クラスを作成します。
TComboBox = class(StdCtrls.TComboBox)
public
procedure CreateParams(var Params: TCreateParams); override;
end;
procedure TComboBox.CreateParams(var Params: TCreateParams);
begin
inherited;
if Assigned(OnDrawItem) then
Params.Style := Params.Style or CBS_OWNERDRAWFIXED
end;
Style
toを設定して、既に行っているようcsDropDown
に割り当てます。OnDrawItem
于 2012-03-21T15:46:07.933 に答える
0
OwnerDraw スタイルのいずれも、 内の編集ボックスの存在をサポートしていませんTComboBox
。TEdit
代わりに別のものを使用する必要があります。
于 2012-03-21T06:26:16.410 に答える