TListViewのカラム変更時に発生するイベントは?

解決


きりり  2006-01-13 00:03:12  No: 19597

TListViewを継承して社内用の汎用コンポーネントを作っていて、
どうしてもカラムヘッダのサイズ変更時に再描画をしたいのですが、
どのイベントをoverrideしたらイベントを捕まえられるのでしょうか?

ColumnDraggedかな?とも思ったのですが、
これはヘッダをドラッグして移動した場合ですよね・・。
見落としがあるかもしれませんが、
ヘルプで1個ずつ調べてみたところ、それらしいものがないような・・。

ご教授頂ければ幸いですm(__)m


きりり  2006-01-13 00:04:15  No: 19598

環境書き忘れました。
Delphi 6 Ent + XP Pro SP2 です。


にしの  2006-01-13 00:17:24  No: 19599

イベントはないようですね。

http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=032387
ここに参考になるソースがありました。


きりり  2006-01-13 03:46:49  No: 19600

西野さん。ありがとうございますm(__)m
ちょっと悪戦苦闘しましたが、教えて頂いたサイトを参考に以下のソースで実現できました。

constructor TListViewEx.Create(AOwner: TComponent);
begin
  //** 他の処理(省略) **//

  // コントロールの再描画の際に出る「ちらつき」を防止する
  Self.DoubleBuffered := True;
end;

procedure TListViewEx.WMNotify(var Message: TWMNotify);
begin
  with TWMNotify(message) do
  begin
    if (Msg = WM_NOTIFY) and (NMHdr^.code = HDN_ITEMCHANGEDW) then
    begin
      // 再描画
      Self.Refresh;
    end;
  end;

  inherited;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加