Q&A

  • Treeview의 영역을 알수있을까요?
날씨가 너무더워서 몸이 천근만근...



트리뷰를 만들었는데 클릭을 하면 해당DB의 내용이 나타나게 했습니다.

그런데 트리뷰의 아이템을 클릭한것도 아니고 트리뷰의 빈공간에다 클릭을 해도

먼저선택되었던 아이템의 내용이 나타납니다.



트리뷰의 아이템을 선택했을때만 아이템의 내용이 나오고 빈공간을 클릭했을때는

아무런 반응을 못하게 하려면 어떻게 해야됩니까?



답변 부탁드리겠습니다.



2  COMMENTS
  • Profile
    free0210 2001.08.09 03:20
    //아래 소스를 참고하세요

    procedure TForm1.TreeView1Click(Sender: TObject);

    var TViewTest : THitTests;

    MousePt : TPoint;

    begin

    if TreeView1.Selected = nil then Exit;

    GetCursorPos(MousePt);

    MousePt := ScreenToClient(MousePt);

    TViewTest := TreeView1.GetHitTestInfoAt(MousePt.X - TreeView1.Left,MousePt.Y - TreeView1.Top);

    if (htOnButton in TViewTest) then Exit;

    if not (htOnItem in TViewTest) then Exit;

    with TreeView1.Selected do begin

    //Coding;

    end;

    end;



    이건오 wrote:

    > 날씨가 너무더워서 몸이 천근만근...

    >

    > 트리뷰를 만들었는데 클릭을 하면 해당DB의 내용이 나타나게 했습니다.

    > 그런데 트리뷰의 아이템을 클릭한것도 아니고 트리뷰의 빈공간에다 클릭을 해도

    > 먼저선택되었던 아이템의 내용이 나타납니다.

    >

    > 트리뷰의 아이템을 선택했을때만 아이템의 내용이 나오고 빈공간을 클릭했을때는

    > 아무런 반응을 못하게 하려면 어떻게 해야됩니까?

    >

    > 답변 부탁드리겠습니다.

    >

  • Profile
    성고훈 2001.08.09 06:47
    답변 감사드립니다.

    그런데 님께서 알려주신데로 했더니 빈영역에 클릭을 하면 사이트로 이동하는

    현상은 사라졌지만 트리뷰 아이콘들중에서 위에서부터 차례로 몇개만 클릭을 인식을 합니다.

    아래에 있는 아이콘들은 클릭을 감지하지 못합니다.



    혹시 영역설정이 잘못되어서 그런건지 제가 초보라서 잘모르겠군요.



    다시한번 답변을 부탁드리겠습니다.

    아래는 수정한 전체소스입니다.



    procedure TMainForm.FavoritesTreeViewClick(Sender: TObject);

    var i:integer; TViewTest : THitTests; MousePt : TPoint; label TheEnd2;

    begin

    Try

    if MainForm.FavoritesTreeView.Selected = nil then Goto theend2;

    GetCursorPos(MousePt);

    MousePt := ScreenToClient(MousePt);

    TViewTest := MainForm.FavoritesTreeView.GetHitTestInfoAt(MousePt.X - MainForm.FavoritesTreeView.Left,MousePt.Y - MainForm.FavoritesTreeView.Top);

    if (htOnButton in TViewTest) then Goto theend2;

    if not (htOnItem in TViewTest) then Goto theend2;





    with MainForm.FavoritesTreeview.Selected do

    begin

    FavoritesTreeView_OldSelectnode:=MainForm.FavoritesTreeView.selected.Text;

    if MainForm.FavoritesTreeview.Selected.imageindex <> 0 then

    begin

    Click_str_site:=MainForm.FavoritesTreeview.Selected.Text;

    MainForm.BoardBrowser1.Navigate(SiteToTable_Search(MainForm.FavoritesTreeview.Selected.Text,'siteaddress'));

    end;

    end;

    TheEnd2:

    except

    end;

    end;