Q&A

  • TreeView한번만더...*^^*
제가 몇일전에 TreeView에 대해 질문은 올렸더니 고맙게도 답장을 써주셨더군요.

근데 안타깝게도 아직 처리를 못하고 있답니다.

써주신 예문에 마지막 부분 [Node의 Data값을 사용하는 예]에서 PPersoninfo는 포인터형인거 같은데 선언한건 없고 해서요.

수고스러우시겠지만 [Node의 Data값을 사용하는 예] 좀더 설명해 주시면 정말 감사드리겠습니다. 부탁드릴께요...



김영대 wrote:



> 안녕하세요 김영대입니다

> 아래는 Node의 Text와 Data 프러퍼티를 사용하는 예제입니다

> 설명상 만들어 본 것이므로 실제로 컴파일은 되지 않습니다

> 전체적인 사용법만 보세요

>

> type

> PDeptInfo = ^TDeptInfo;

> TDeptInfo = record

> DEPTNO: String[10];

> DEPTNAME: String;

> end;

>

> function TForm1.RegisterDept(GroupNode: TTreeNode; NodeName, DeptNo, DeptName: String): TTreeNode;

> var

> DeptInfo: PDeptInfo;

> begin

> New(DeptInfo);

> DeptInfo^.DEPTNO := DeptNo; // 부서코드

> DeptInfo^.DEPTNAME := DeptName; // 부서명

> Result := TreeView1.Items.AddChildObject(GroupNode,

> NodeName, // Node의 Text

> DeptInfo); // Node의 Data

> end;

>

> procedure TForm1.B_AddClick(Sender: TObject);

> var

> GroupNode, DeptNode: TTreeNode;

> begin

> if TreeView1.Selected = nil then

> System.Exit;

>

> // 현재 선택된 Node를 상위 Node(여기서는 GroupNode)로 하여

> // 그 아래에 부서 Node 하나를 추가한다

> GroupNode := TreeView1.Selected;

> DeptNode := RegisterDept(GroupNode,

> '첫번째 부서',

> '0001',

> '총무과');

> DeptNode.MakeVisible;

> end;

>

> procedure TForm1.B_ShowClick(Sender: TObject);

> var

> DeptNode: TTreeNode;

> begin

> if TreeView1.Selected = nil then

> System.Exit;

>

> // Node의 Data 값을 사용하는 예

> DeptNode := TreeView1.Selected;

> ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNO);

> ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNAME);

> end;





1  COMMENTS
  • Profile
    김영대 1999.05.14 18:08
    땡글이 wrote:

    > 제가 몇일전에 TreeView에 대해 질문은 올렸더니 고맙게도 답장을 써주셨더군요.

    > 근데 안타깝게도 아직 처리를 못하고 있답니다.

    > 써주신 예문에 마지막 부분 [Node의 Data값을 사용하는 예]에서 PPersoninfo는 포인터형인거 같은데 선언한건 없고 해서요.

    > 수고스러우시겠지만 [Node의 Data값을 사용하는 예] 좀더 설명해 주시면 정말 감사드리겠습니다. 부탁드릴께요...

    >

    > 김영대 wrote:

    >

    > > 안녕하세요 김영대입니다

    > > 아래는 Node의 Text와 Data 프러퍼티를 사용하는 예제입니다

    > > 설명상 만들어 본 것이므로 실제로 컴파일은 되지 않습니다

    > > 전체적인 사용법만 보세요

    > >

    > > type

    > > PDeptInfo = ^TDeptInfo;

    > > TDeptInfo = record

    > > DEPTNO: String[10];

    > > DEPTNAME: String;

    > > end;

    > >

    > > function TForm1.RegisterDept(GroupNode: TTreeNode; NodeName, DeptNo, DeptName: String): TTreeNode;

    > > var

    > > DeptInfo: PDeptInfo;

    > > begin

    > > New(DeptInfo);

    > > DeptInfo^.DEPTNO := DeptNo; // 부서코드

    > > DeptInfo^.DEPTNAME := DeptName; // 부서명

    > > Result := TreeView1.Items.AddChildObject(GroupNode,

    > > NodeName, // Node의 Text

    > > DeptInfo); // Node의 Data

    > > end;

    > >

    > > procedure TForm1.B_AddClick(Sender: TObject);

    > > var

    > > GroupNode, DeptNode: TTreeNode;

    > > begin

    > > if TreeView1.Selected = nil then

    > > System.Exit;

    > >

    > > // 현재 선택된 Node를 상위 Node(여기서는 GroupNode)로 하여

    > > // 그 아래에 부서 Node 하나를 추가한다

    > > GroupNode := TreeView1.Selected;

    > > DeptNode := RegisterDept(GroupNode,

    > > '첫번째 부서',

    > > '0001',

    > > '총무과');

    > > DeptNode.MakeVisible;

    > > end;

    > >

    > > procedure TForm1.B_ShowClick(Sender: TObject);

    > > var

    > > DeptNode: TTreeNode;

    > > begin

    > > if TreeView1.Selected = nil then

    > > System.Exit;

    > >

    > > // Node의 Data 값을 사용하는 예

    > > DeptNode := TreeView1.Selected;

    > > ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNO);

    > > ShowMessage(PPersonInfo(DeptNode.Data)^.DEPTNAME);

    > > end;

    >

    >



    안녕하세요 김영대입니다



    제가 만든 프로그램의 일부를 고쳐서 올리다 보니

    완전히 바꾸지를 못했네요... 죄송...



    근데 소스를 유심히 보시면 금방찾을 수 있는데...

    PPersonInfo -> PDeptInfo

    • 북해
    • 1999.05.14 19:15
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 무명인
      1999.05.15 05:05
      북해 wrote: > 안녕하세요. SQL문을 사용하려는데 자꾸 에러가 나네요. Edit.Text가 Change될 때마다 아래...
    • 왕초보
      1999.05.14 20:18
      with query1 do Begin sql.add('select * from 테이블'); sql.add('where 성명 like '''+edit1.Text+'%...
    • 북해
    • 1999.05.14 19:00
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 20:15
      보통 컴포넌트를 설치하는 방법은 두가지 입니다. 첫째, PAS나 .DCU파일을 가지고 하는방법. 둘째, DPK나...
    • 왕초보
      1999.05.14 20:15
      델파이 component 메뉴에서 install component를 선택하시면 컴포넌트 모듈(*.pas, *.dcu)를 선택할 수 있...
    • 김승현
    • 1999.05.14 06:01
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 왕초보
      1999.05.14 18:16
      저도 초보라서.. 정확한 답변이 될런지는 모르겠지만 도움일 될까해서 제가 Dll에서 db쓰는 source를 알...
    • 땡글이
    • 1999.05.14 05:27
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.05.14 18:08
      땡글이 wrote: > 제가 몇일전에 TreeView에 대해 질문은 올렸더니 고맙게도 답장을 써주셨더군요. > 근데...
    • 1999.05.14 02:45
      이누리 wrote: > EditBox 내의 오른쪽 정렬이 되지 않는 관계로.. > > 편법으로.. 문자열앞에 공백을 ...
    • 이영호
    • 1999.05.14 02:18
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.14 02:49
      이영호 wrote: > 오라클에 접속하려고 데이타베이스컴포넌트의 속성을 아래와 같이 주었는데 > db1.Pa...
    • 이정욱
      1999.05.14 03:12
      ParentComp := GetOwner as TWinControl; 로 고쳐서 해보세요... 장담은 못합니다... ^^; 왕초보 wr...
    • 강지영
    • 1999.05.14 01:10
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.14 01:29
      강지영 wrote: > ShellExecute 를 사용하려고 하는데 > 파라미터 전달하는 것을 모르겠습니다. > 예를 ...
    • 왕초보
      1999.05.14 01:27
      ShellExecute (Handle,'open', 'notepad','c:config.sys','',SW_SHOWNORMAL); 와 같이 파리미터...
    • 왕초보
    • 1999.05.14 00:02
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 03:27
      아래의 문을 참고해서 디자인타임일경우에는 못하게 하시고 런타임인경우에만 실행하게 해보세요. if ...
    • 건맨
    • 1999.05.13 23:58
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 왕초보
      1999.05.14 00:07
      Interbase 를 설치하면 자동으로 깔리는 PDF문서를 참조하세요... 영문으로 되어 있지만 모두 출력을 하면...
    • 정용철
    • 1999.05.13 23:31
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 03:34
      NMOCOD.DLL, NMORENU.DLL, NMSCKN.DLL, NMFTPSN.DLL, OLEPRO32.DLL 을 같이 배포하셔야 합니다. 복사만 ...
    • 은철수
    • 1999.05.13 22:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 은철수
      1999.05.14 02:00
      하윤철 wrote: > 같은 질문의 답을 델파이 팁페이지에서 구할수 있었습니다... > > http://board.membe...
    • 이호선
    • 1999.05.13 21:36
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 23:25
      NCHitTest 메세지가로채서 사용하는 방법과, 또 하나의 ReleaseCapture와 SendMessage를 사용하는 두가지 ...
    • 북해
    • 1999.05.13 20:13
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 1999.05.13 21:38
      북해 wrote: > 비트맵버튼에서,혹은 그냥 버튼이라도, Caption에 들어갈 글자를 세로로 표기할 수 있나요...
    • 이정욱
      1999.05.13 21:20
      음냐.. 없습니다... 즉, 다른 컴포넌트를 사셔야 합니다. 아니면 Image를 버튼화 시켜서 그림으로 넣으...
    • 신호철
    • 1999.05.13 19:43
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.14 03:19
      이곳의 문제는 Close;문이 문제이군요. Close가 있지만 .. function TCSpacket.file1init : Boolean; ...
    • 북해
    • 1999.05.13 19:40
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.05.13 21:29
      포커스를 가진다는것은 제일 쉽게 말해서 현재 카렛(도스시절의 커서)이 있는 콘트롤을 지칭합니다. 카렛...
    • 신현숙
      1999.05.15 01:37
      신현숙 wrote: > 안녕하세요.. > 델파이 데리고 일하는 사람입니다. > 도움을 바랍니다. > 원하는 것이...
    • 남호열
      1999.05.15 01:07
      신현숙 wrote: > 안녕하세요.. > 델파이 데리고 일하는 사람입니다. > 도움을 바랍니다. > 원하는 것이...
    • 하윤철
      1999.05.13 22:36
      신현숙 wrote: > 안녕하세요.. > 델파이 데리고 일하는 사람입니다. > 도움을 바랍니다. > 원하는 것이...