TreeViewとListViewの選択をするには??

解決


Pyit  2004-12-31 06:47:41  No: 12538

ListViewとTreeViewを両方ともHideSelect = falseで配置し、
ListViewの[i]番目のアイテムが選択されたとき、ListViewの[i]番目のItemとTreeViewの[i]番目のItemを選択状態にし、また、
TreeViewの[i]番目のItemが選択されたとき、TreeViewの[i]番目のItemとListViewの[i]番目のItemが選択されているようにしたいのですが、ListViewのOnSelectイベントでTreeViewを選択状態しするとListViewの選択が解かれてしまいます。
このようなことを実現するにはどうすればよいのでしょうか。どうかご教授ください


年越しうどん  2004-12-31 22:40:25  No: 12539

他にも色々方法ありますが。
簡単げな方法をひとつ

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    TreeView1: TTreeView;
    Button1: TButton;
    ListView1: TListView;
    procedure ListView1Change(Sender: TObject; Item: TListItem;
      Change: TItemChange);
    procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
  private
    { Private 宣言 }
    eventFlag:boolean;
    procedure commonEvent(Sender: TObject);
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
procedure TForm1.commonEvent(Sender: TObject);
begin
  caption:=(Sender as TWinControl).Name;
end;

procedure TForm1.ListView1Change(Sender: TObject; Item: TListItem;
  Change: TItemChange);
begin
if eventFlag=True then
 exit else
 begin
   eventFlag:=True;
   TreeView1.Items[Item.Index].Selected :=True;
   commonEvent(Sender);
   eventFlag:=False;
 end;

end;

procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
begin
if eventFlag=True then
 exit else
 begin
   eventFlag:=True;
   ListView1.Items[Node.Index].Selected :=True;
   commonEvent(Sender);
   eventFlag:=False;
 end;
end;

end.


Pyit  2005-01-01 04:26:13  No: 12540

ありがとうございました。
無事両方を選択状態にすることができました。。


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

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






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