掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ListboxのOnDrawItemを呼び出すには? (ID:17535)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>ListboxのOnDrawItemを呼び出すには? (1) Listboxの各Itemの色を変更したい ----> (2) OnDrawItemを使えばいいのかも知れない ということで,このタイトルの質問になったのではないかと思いますが, Delphiでは,各コントロール(コンポーネント)にイベントがあり,これは, 実行中に適当なタイミングで呼び出してくれます. 素直に,やりたいことを質問すればよかったわけですね. つまり,OnDrawItemイベントを定義しさえすれば自動的に実行してくれる わけです.以下のコードを実行してみて下さい.後は適当に... もちろんヘルプも参考にして下さい. 実行確認は,WindowsXP(SP2),Delphi5(UP1)です. //===================================================================== // ListBoxのItemの色を変更 // StyleプロパティをlbOwnerDrawFixedにするとこのイベントが呼ばれる // このイベントを定義するとデフォルトの描画は行わないので,自分で書く //===================================================================== procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin with ListBox1 do begin if odFocused in State then begin Canvas.Brush.Color:=clWhite; end else begin case Index of 0: Canvas.Brush.Color:=clYellow; 1: Canvas.Brush.Color:=clBlue; 2: Canvas.Brush.Color:=clGreen; 3: Canvas.Brush.Color:=clRed; end; end; Canvas.FillRect(Rect); DrawText(Canvas.Handle,PChar(Items[Index]),-1,Rect, DT_SINGLELINE or DT_VCENTER or DT_LEFT); end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.