TreeViewのアイテムの高さを変更

解決


LupinⅢ  URL  2003-12-25 20:55:56  No: 6406

タイトルと通りなのですがTreeViewでアイテムの高さを変更したい(ちなみに行間を大きくしたい)のですが、どのような方法ですべきでしょうか?


通りすがり  2003-12-25 21:52:34  No: 6407

こんなの作ったことあります。ハズレでしたら忘れてください。
unit MyTreeView;
interface
uses
  Windows, Messages, SysUtils, Classes, Controls, ComCtrls;
type
  TMyTreeView = class(TTreeView)
  private
    { Private 宣言 }
    FItemHeight: Integer;
    procedure SetItemHeight(Value: Integer);
    function GetItemHeight: Integer;
  published
    { Published 宣言 }
    property ItemHeight: Integer read GetItemHeight write SetItemHeight;
  end;
procedure Register;
implementation
uses CommCtrl;
procedure Register;
begin
  RegisterComponents('MyCompo', [TMyTreeView]);
end;
procedure TMyTreeView.SetItemHeight(Value: Integer);
begin
  if FItemHeight<>Value then begin
    FItemHeight := Value;
    SendMessage(Handle,TV_FIRST+27,FItemHeight,0);
  end;
end;
function TMyTreeView.GetItemHeight: Integer;
begin
  Result := SendMessage(Handle,TV_FIRST+28,0,0);
end;
end.


LupinⅢ  URL  2003-12-26 20:51:37  No: 6408

なるほど自前でクラスを作るということですね。
出来れば自前でクラスを作らない方法を考えたかったのですが…。


にしの  2003-12-26 21:03:16  No: 6409

いや、単純に、
SendMessage(Handle,TV_FIRST+27,FItemHeight,0);//設定

Result := SendMessage(Handle,TV_FIRST+28,0,0);//取得

ここが重要で、それを使いやすくするためのクラスということだと思います。

ちなみに、TV_FIRST+27やTV_FIRST+28だと解りづらいので、
TVM_SETITEMHEIGHT
TVM_GETITEMHEIGHT
としたほうがよいかも。


LupinⅢ  URL  2003-12-26 21:20:26  No: 6410

通りすがりさん、にしのさんありがとうございます。
確かにその通りで、解決できました。


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

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






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