2012-03-21 36 views
7

私はにスタイルプロパティが設定されたTComboBoxコンポーネントを使用していますがが、私はOnDrawItem実装csOwnerDrawFixed、すべてが今、私はコンボボックスがcsOwnerDrawFixedで(csDropDownスタイルを持っていたときのように動作するためにどのたい、正常に動作しますスタイルはcsDropDownListスタイルのように動作します)、内部エディタを使用します。これは可能ですか?csOwnerDrawFixedスタイルのコンボボックスは、csDropDownスタイルのように動作しますか?

答えて

0

OwnerDrawスタイルは、TComboBoxの編集ボックスの存在をサポートしていません。代わりに別のTEditを使用する必要があります。

7

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; 

csDropDownからStyleを設定し、あなたがすでにやっているようOnDrawItemを割り当てます。

関連する問題