Q&A

  • 트리뷰관련 질문입니다.
트리뷰에 세계시간을 나타내려합니다.

아시아,북미,유럽같은 큰범주에 서브노드를 두어 각 도시나 나라이름을 표기한후

이와 동시에 한국과의 시차값을 표기한후 어떤 한 나라를 선택한경우 현재시간과

선택한 나라의 시차를 연산하여 시간표시를 하려고 합니다.

각 나라별 리스트를 만들때 시차값을 어떻게 주어야 하는지..

그리고 클릭이벤트에서 그 시차값과 현재시간값을 어떻게 연산해서 시간을 나타내야

하는지..

비주얼베이직으로는 이렇게 구현했습니다.



Private Sub Form_Load()

Dim nodx as Node





' 상위노드를 지정한다.

Set nodX = TreeView1.Nodes.Add(, , "r", "세계시간")

nodX.Tag = "Root"



' 하위노드를 지정한다.

Set nodX = TreeView1.Nodes.Add("r", tvwChild, "rchild1", "아시아")



Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a1", "일본")

nodX.Tag = -0 ' 시간을 계산하기 위함

Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a2", "중국,홍콩,대만,필리핀")

nodX.Tag = -1

Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a3", "싱가폴,말레이지아")

nodX.Tag = -1

Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a4", "몽고,마카오")

nodX.Tag = -1

Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a5", "태국,자카르타(인도네시아)")

nodX.Tag = -2

Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a6", "베트남,캄보디아")

nodX.Tag = -2

Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a7", "방글라데시")

nodX.Tag = -3

Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a8", "파키스탄")

nodX.Tag = -4

이런식으로 유럽,북미,아프리카등을 등록해서 아이템을 클릭하면 nodx.tag값을 어느 변수(timeterm= Cint(node.tag))에 치환한다음

lbltime.caption = format(now + timeserial(timeterm, 0, 0),"m월 d일 hh시 mm분 ss초') 이렇게 연산을 하여 시간을 나타냈습니다.

근데 델파이에서는 어떤 속성을 이용해야 timeterm같은 각 나라의 시차값을 갖을수있는지.. 또 어떤형식으로 시간연산을 할 수 있는지..

비주얼베이직과 비슷할것 같은데 잘 안되네요..

부디 많은 조언좀 부탁드리겠습니다.

좋은 하루 되세요.



1  COMMENTS
  • Profile
    최용일 2000.04.19 23:01
    안녕하세요. 최용일입니다.



    델파이에서 트리노드에 Data란 속성이 있습니다. 아마도 비베의 트리노드에 있는



    Tag속성과 비슷할것 같습니다. 비베는 한번도 사용해 보지 않아서...



    const

    Root:string = 'Root';

    var

    NewNode: TTreeNode;

    begin

    // 상위노드를 지정한다.

    NewNode := TreeView1.Items.Add(nil, '세계시간');

    NewNode.Data := @Root;



    // 하위노드를 지정한다.

    NewNode := TreeView1.Items.AddChild(NewNode, '아시아');



    NewNode := TreeView1.Items.AddChild(NewNode, '베트남,캄보디아');

    NewNode.Data := Pointer(-1);

    ......

    end;



    루트노드 데이터에 접근

    var

    S: string;

    begin

    S := string(TreeView1.Selected.Data^);

    end;



    서브노드 데이터에 접근

    var

    I: Integer;

    begin

    I := Integer(TreeView1.Selected.Data);

    end;



    시간 관련연산은 한델( http://www.delphi.co.kr/ )의 델파이 팁모아에 무지 많이



    있습니다. 찾아보세요.



    ^^ 항상 즐코하세요.



    최진석 wrote:

    > 트리뷰에 세계시간을 나타내려합니다.

    > 아시아,북미,유럽같은 큰범주에 서브노드를 두어 각 도시나 나라이름을 표기한후

    > 이와 동시에 한국과의 시차값을 표기한후 어떤 한 나라를 선택한경우 현재시간과

    > 선택한 나라의 시차를 연산하여 시간표시를 하려고 합니다.

    > 각 나라별 리스트를 만들때 시차값을 어떻게 주어야 하는지..

    > 그리고 클릭이벤트에서 그 시차값과 현재시간값을 어떻게 연산해서 시간을 나타내야

    > 하는지..

    > 비주얼베이직으로는 이렇게 구현했습니다.

    >

    > Private Sub Form_Load()

    > Dim nodx as Node

    >

    >

    > ' 상위노드를 지정한다.

    > Set nodX = TreeView1.Nodes.Add(, , "r", "세계시간")

    > nodX.Tag = "Root"

    >

    > ' 하위노드를 지정한다.

    > Set nodX = TreeView1.Nodes.Add("r", tvwChild, "rchild1", "아시아")

    >

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a1", "일본")

    > nodX.Tag = -0 ' 시간을 계산하기 위함

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a2", "중국,홍콩,대만,필리핀")

    > nodX.Tag = -1

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a3", "싱가폴,말레이지아")

    > nodX.Tag = -1

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a4", "몽고,마카오")

    > nodX.Tag = -1

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a5", "태국,자카르타(인도네시아)")

    > nodX.Tag = -2

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a6", "베트남,캄보디아")

    > nodX.Tag = -2

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a7", "방글라데시")

    > nodX.Tag = -3

    > Set nodX = TreeView1.Nodes.Add("rchild1", tvwChild, "a8", "파키스탄")

    > nodX.Tag = -4

    > 이런식으로 유럽,북미,아프리카등을 등록해서 아이템을 클릭하면 nodx.tag값을 어느 변수(timeterm= Cint(node.tag))에 치환한다음

    > lbltime.caption = format(now + timeserial(timeterm, 0, 0),"m월 d일 hh시 mm분 ss초') 이렇게 연산을 하여 시간을 나타냈습니다.

    > 근데 델파이에서는 어떤 속성을 이용해야 timeterm같은 각 나라의 시차값을 갖을수있는지.. 또 어떤형식으로 시간연산을 할 수 있는지..

    > 비주얼베이직과 비슷할것 같은데 잘 안되네요..

    > 부디 많은 조언좀 부탁드리겠습니다.

    > 좋은 하루 되세요.

    >

    • hjcho96
    • 2000.04.20 01:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • sjd
      2000.04.20 05:14
      hjcho96 wrote: > win95 > computer1->interbase server 설치 > computer2->interbase client 설치 > B...
    • 델초보
    • 2000.04.20 01:42
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 갱민이
      2000.04.20 02:50
      델초보 wrote: > 안녕하세여? > > 델초보임당 > > 다른 분의 소스 가져다가 컴파일 하는 뎅 리소스 ...
    • 초보1
    • 2000.04.20 01:04
    • 3 COMMENTS
    • /
    • 0 LIKES
    • ACCESS
      2000.04.20 02:50
      초보1 wrote: > 초보자가 올립니다. > query, datasource, dbgrid 가 서로연결되어있고, > > dbgrid...
    • 구창민
      2000.04.20 01:49
      초보1 wrote: > 초보자가 올립니다. > query, datasource, dbgrid 가 서로연결되어있고, > > dbgrid...
    • 하얀까마귀
      2000.04.20 08:30
      안녕하세요 하얀까마귀 입니다.. 구창민님의 말씀처럼.. dbgrid에서 어떤 입력을 하는건 별로 안좋다고 ...
    • 맹주형
    • 2000.04.20 00:59
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 강민주
      2000.04.20 01:33
      맹주형 wrote: > DB에 있는 데이터를 프린터로 출력을 하려고 합니다. > "델파이"라는 데이터가 있을경우...
    • 내가 찾아볼께
      2000.09.02 09:23
      강민주 wrote: > 맹주형 wrote: > > DB에 있는 데이터를 프린터로 출력을 하려고 합니다. > > "델파이"...
    • 황남철
    • 2000.04.19 23:50
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.19 23:58
      안녕하세요. 최용일입니다. Copy(A ,2, Length(A) - 1); ^^ 항상 즐코하세요. 황남철 wrote: > ...
    • 강인규
      2000.04.20 00:19
      테스트해보지 않았습니다만 length명령을 사용하시면 될듯합니다. copy(a,2,length(a)); 하시면 됩니...
    • 하얀까마귀
      2000.04.20 08:36
      안녕하세요 하얀까마귀 입니다.. 다른분들이 답변올리셧는데.. 저두 한마디.. 후후 if pos('e' , a) ...
    • 최용일
      2000.04.19 23:07
      안녕하세요. 최용일입니다. Anchors 속성을 사용해 보세요. True, False바꾸어 보면서 몇번 실행해보시...
    • 한승수
      2000.04.19 23:27
      예..감사합니다..그런데요.. 툴바같은 컴포넌트는 버튼을 추가했을경우..폼의 크기가 버튼의 합의 크기...
    • 최용일
      2000.04.20 00:02
      안녕하세요. 최용일입니다. 폼에 스크롤바를 생기지 않게 하실려면 폼의 AutoScroll속성값을 False로 해...
    • 최진석
    • 2000.04.19 22:25
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.19 23:01
      안녕하세요. 최용일입니다. 델파이에서 트리노드에 Data란 속성이 있습니다. 아마도 비베의 트리노드에 ...
    • 이치형
      2000.04.20 02:41
      파이공주 wrote: > > 이종DB 간 inset 시.. 문제가 발생해요..고수님들의 사려깊은 조언 .. > 하나...
    • 파이공주
      2000.04.21 23:06
      이치형 wrote: > 파이공주 wrote: > > > > 이종DB 간 inset 시.. 문제가 발생해요..고수님들의 사려...
    • 이치형
      2000.04.22 05:23
      파이공주 wrote: > 이치형 wrote: > > 파이공주 wrote: > > > > > > 이종DB 간 inset 시.. 문제가 ...
    • 최일성
    • 2000.04.19 21:16
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 조규춘
      2000.04.19 21:36
      최일성 wrote: > 안녕하십니까? > 델파이를 공부중인 초보자거든여! > 델파이 5.0을 사용하고 있는데 co...
    • 최용일
      2000.04.19 21:58
      안녕하세요. 최용일입니다. TimeStamp를 쓰시면 간단하게 구하실 수 있습니다. function TForm1.GetD...
    • knight
    • 2000.04.19 20:47
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 고종일
    • 2000.04.19 20:05
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.19 20:45
      안녕하세요. 최용일입니다. 뭐 여러가지 방법이 있겠지만 메세지를 사용하시는것이 제일 간단할 것 같은...
    • 엄주평
    • 2000.04.19 19:42
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2000.04.19 20:30
      안녕하세요. 최용일입니다. 디스크의 타입정보는 GetDriveType란 API함수를 이용하시면 알 수 있습니다....
    • 최석기
      2000.04.19 20:04
      엄주평 wrote: > 델파이를 시작한지 얼마 되지 않습니다. > 하드 디스크인지 아닌지 구별하는 방법하구요...
    • HART
      2000.04.19 18:29
      답은 모두 알는데 조합이 안되것 같은데. 먼저 출력하기 전에 prepare를 하지면 pagecount에 출력하려는 출...
    • 최은석
      2000.04.20 18:37
      초보 wrote: > 4시간동안 헤맸어요..머리가 무척나쁜건지 일주일 봤는데 모르겠네요. > 폼에서 디자인하...
    • Mr.Q
      2000.04.20 05:00
      초보 wrote: > 4시간동안 헤맸어요..머리가 무척나쁜건지 일주일 봤는데 모르겠네요. > 폼에서 디자인하...
    • HART
      2000.04.19 18:57
      조금은 무시한 방법이되 숫자인지 확실하게 구분할 수 있습니다. function numbercheck(s : string) : b...
    • 최석기
      2000.04.19 18:36
      초보 wrote: > 4시간동안 헤맸어요..머리가 무척나쁜건지 일주일 봤는데 모르겠네요. > 폼에서 디자인하...