C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[9708] Re:[질문]트리뷰의 빈공간을 클릭해도 아이템을 클릭한 효과가 납니다.
kark .김성진 [] 932 읽음    2001-08-09 10:29
꼭 OnClick 이벤트에서 처리를 하셔야 하는지요..

그게 아니라면 간단하게 처리하는 방법이 있긴합니다.

OnChange 이벤트에서요..

void __fastcall TForm1::TreeView1Change(TObject *Sender, TTreeNode *Node)
{
   if(Node == NULL)
      return;

   ShowMessage(TreeView1->Selected->Text); // 여기에서 DB 처리해주시면 되겠죠..
                                           // Node->Text ...
}

이렇게 하면 되긴합니다.

클릭 순간에 이미 선택 여부를 떠나서 이전 아이템이 먼저 선택이 되어 있습니다.

OnMouseUp이나 다른 부분에서

TreeView1->Selected->Selected = false;

하셔서 선택을 해제 시켜 버릴 수도 있으나,

이렇게 하시면 OnClick 하는 순간에

if(TreeView1->Selected == NULL)
   return;

이라는 안전코드를 넣어도 무의미해지죠.

그리고 전백수님이 올리신 코드처럼 마우스 포지션으로 찾을 수 도 있으나..

고려해야 할게 많아서..좀..그렇네요..

도움이 되었길 바랍니다.


전백수 님이 쓰신 글 :
: 트리뷰의 아이템이아닌 트리뷰의 빈공간에 클릭을 해도 아이템과 연결된 데이타베이스의 링크로 연결되는 문제때문에
:  도움을 요청했더니 어떤분(Free0210)께서 알려주신대로 아래와같이 코딩을 했습니다.
:
: 그런데  알려주신데로 했더니 빈영역에 클릭을 하면 사이트로 이동하는
: 현상은 사라졌지만 트리뷰 아이콘들중에서 위에서부터 차례로 몇개만 클릭을 인식을 합니다.
: 아래에 있는 아이콘들은 클릭을 감지하지 못합니다.
:
: 혹시 영역설정이 잘못되어서 그런건지 제가 초보라서 잘모르겠군요.
:
: 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;

+ -

관련 글 리스트
9698 [질문]트리뷰의 빈공간을 클릭해도 아이템을 클릭한 효과가 납니다. 전백수 819 2001/08/09
9708     Re:[질문]트리뷰의 빈공간을 클릭해도 아이템을 클릭한 효과가 납니다. kark .김성진 932 2001/08/09
9724         Re:Re:감사합니다. 해결되었습니다. 전백수 929 2001/08/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.