Q&A

  • TreeView에서요
TreeView에서..
Child를 추가할때
Parents를 루핑돌려서..찾아..추가하고 있거든요.
그러다보니 시간이 너무 걸려서요.
그럼 방법없이
바로 추가할 Parents를 찾을 수 있는 방법은 없을까요?
For ii := 0 to TV1.Items.Count do
                  begin
                     if TV1.Items.Item[ii].Text = Qcode.FieldByName('ACCT_UPNAME3').AsString then
                        TV1.Items.AddChild(TV1.Items.Item[ii],Qcode.FieldByName('ACCT_UPNAME2').AsString);
                  end;


이런식으로 하고 있답니다..
답변부탁드립니다.
3  COMMENTS
  • Profile
    홍성락 2002.09.04 07:47
    hsr////////////////////////////////////////////////////
    TStream과 TStrings으로 바꾼후 선택하는건데요.
    예입니다. 다른 방법있으면 리플로 달아주세요
    StringReplace이 시간을 많이 잡아먹네요.
    많은양일때는 루프로 돌린것과는 차이가 좀 있을듯.....
    Edit1의 문자에 해당하는 노드에 Edit2의 문자인 노드를 생성합니다.

    procedure TForm1.Button2Click(Sender: TObject);
    var
        Tree_Stream : TStream;
        TS : TStrings;
        NewIndex : integer;
    begin
        Tree_Stream := TstringStream.Create('');
        TreeView1.SaveToStream(Tree_Stream);
        Tree_Stream.Position := 0;
        TS := TStringList.Create;
        TS.LoadFromStream(Tree_Stream);
        TS.Text := StringReplace(TS.Text, #9, '', [rfReplaceAll]);
        NewIndex := TS.IndexOf(Edit1.Text);
        if NewIndex >=0 then
           TreeView1.Items.AddChild(TreeView1.Items.Item[NewIndex],Edit1.Text);
        TS.Destroy;
        Tree_Stream.Destroy;
    end;
  • Profile
    이중철 2002.09.04 05:49
    일단 랜덤하게 parent를 찾는다면 방법이 기존의 루프 밖에 없고요.

    입력 방법이 어떤것이냐에 따라 입력 방법이 틀리죠.

    조직도를 예를 들까 합니다.

    (일반적으로 조직명과 코드와 관계코드[이것은 DB에 따라

    틀려질수 있음, 예로 10000000, 11000000, 12000000]등으로 구성)

    제가 기억은 안나지만 item에 data라는 프러퍼티가 있어 거기에

    위의 정보를 입력 가능한것으로 알고 있음.

    이 경우 조직명은 실제 Tree에 표시되는 부문이고 내부 관계는 관계코드에

    의한것이죠.

    만약 위의 트리구조로 입력을 하였다면 데이타구조론의 Tree Search루틴을

    사용하면 됩니다

    쩝 너무 당연한 이야기를 했네요 끙.. 전 이만 휘리릭.....

  • Profile
    한원희 2002.09.04 07:34
    안녕하세요. 한원희입니다.

    음... 아래와 같은 방식이라면, 하나의 노드를 추가하는 것이라면 상관이 없겠지만, DB를 읽어서 그 쿼리 결과를 모두 처리하는 것이라면, 노드의 개수가 많아질 수록 느려지는 것은 당연하겠지요.

    하지만, 달리 생각해 보면, 처음에 쿼리를 해올 당시에 그 결과가 트리에 추가할 순서대로 정렬이 되도록 한다면 어떨까요? 쿼리 결과를 하나씩 일어서 순서의 의해 추가를 하면 되니까, 매우 빠르게 트리를 구성할 수 있을듯 싶습니다. 데이터가 어떻게 구성되어 있을지는 모르겠지만, 새로운 필드를 하나 추가를 하던가 해서 이런식으로 구현하는 것이 속도 향상에는 크게 도움이 되리라 생각됩니다.



    • 이정택
    • 2002.09.04 19:51
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 머슴
      2002.09.04 20:09
        제가 알기로는  Query컴퍼넌트는 Refresh 메서드를 지원을 안하는 것으로 &nb...
    • 김흥식
      2002.09.04 20:14
      도움이 될런지... 저는 이렇게 합니다. Query.Active := False; Query.Active := True; 그럼..
    • 김상수
    • 2002.09.04 19:41
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김영남
      2002.09.04 19:52
      델파이에두 물론 문자열 위치 반환이나 문자열을 자르는 함수가 있지요... 문자열 자르기 _st := '12...
    • 김상수
      2002.09.04 20:13
    • 머슴
      2002.09.04 20:00
      스트링 그리드에.. 체크필드가 있고 이어서 그 화일의 경로가 있을 경우에 해당됩니다.. 이런 경우에는 ...
    • 김영남
      2002.09.04 20:05
      델파이에서 호스트 변수 사용을 말씀하시는건지? 그럼... parambyname('Abc').asstring := '2002/0...
    • sunny
    • 2002.09.04 17:20
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김용일
      2002.09.04 19:07
      님께서 쓰신 방법은 문제가 있군요. 더블클릭보다는 DrawCell 이벤트를 써야 마땅합니다. 더블클릭은 설...
    • 박정찬
    • 2002.09.04 09:50
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2002.09.04 20:55
      안녕하세요. 최용일입니다. 패키지파일에서 *.dcu파일빼시고 *.dcu파일들은 패스가 지정된 Lib폴더 같은...
    • 용환종
    • 2002.09.04 07:34
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.09.04 20:56
      hsr///////////////////////////////////////////////////////////// 컴포넌트로 되어있는것을 풀어서 정...
    • 김주경
    • 2002.09.04 07:04
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 미소나눔
      2002.09.04 18:43
      연결 컴포넌트를 어떤것을 쓰는지 잘모르지만 만약 DCOM 을 이용해서 DataSnapd을 이용한다면 클라이언트...
    • 신봉석
    • 2002.09.04 04:48
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 홍성락
      2002.09.04 07:47
      hsr//////////////////////////////////////////////////// TStream과 TStrings으로 바꾼후 선택하는건데...
    • 이중철
      2002.09.04 05:49
      일단 랜덤하게 parent를 찾는다면 방법이 기존의 루프 밖에 없고요. 입력 방법이 어떤것이냐에 따라 입...
    • 한원희
      2002.09.04 07:34
      안녕하세요. 한원희입니다. 음... 아래와 같은 방식이라면, 하나의 노드를 추가하는 것이라면 상관이 없...
    • 짱아
    • 2002.09.04 04:20
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 김용일
      2002.09.04 19:13
      procedure TForm1.Panel1DblClick(...); begin     with StringGrid1 do  &nb...
    • 동키호테
      2002.09.04 04:33
      StringGrid1.Cells[Col_num][Row_Num] := 'C'; 이렇게 하면 될텐데.. Panel1의 더블클릭쪽에다만 이것...
    • 짱아
      2002.09.04 19:13
      ㅡㅡ; 관심 가져 주셔셔 정말 감사 합니다.. 해결 했답니당.. ^^*
    • 최용일
      2002.09.04 05:22
      안녕하세요. 최용일입니다. 걍 메세지 보내시면 됩니다... procedure InsertString(Wnd: THandle; co...
    • 최용일
      2002.09.04 07:50
      안녕하세요. 최용일입니다. IcsDel50이라는 이름을 가진 패키지가 설치되어 있는가 다시한번 확인해보세...
    • 최용일
      2002.09.04 05:25
      안녕하세요. 최용일입니다. 메타파일은 확실히 잘 될지 모르겠구요... TCanvas.CopyRect로 읽어오시...
    • 최용일
      2002.09.04 03:14
      안녕하세요. 최용일입니다. 퀵리포트 홈페이지에 가시면 있습니다. http://www.qusoft.com/ 이전...
    • 궁금이
      2002.09.04 16:53
      먼저 답변을 주신점 정말 감사합니다. http://www.qusoft.com/ 사이트는 잘 알고 있어요. 현재 Delph...
    • 최용일
      2002.09.04 18:58
      안녕하세요. 최용일입니다. 델파이에서는 같은 이름의 컴포넌트를 등록할 수 없어요... 에러내용을 보면...
    • 궁금이
      2002.09.05 20:36
      감사,,,감사,, 감사,, 혹시  Delphi3 QuickReport 3.08 가지고 있으면 좀 부탁드립니다... ...
    • 델사랑
    • 2002.09.04 02:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • KDDG_ZZOM
      2002.09.04 02:10
      헐~~~ 델파이로만은 힘들것같은데... GIS하고 같이 움직여야 될것같네요... 4번이라면 캐드의 레이어 식...
    • 윤여훈
      2002.09.04 03:37
      안녕하십니까? 답변 감사합니다. 하지만 워낙 초보인지라... 맵오브젝트 및 CAD의 레이어에 관해서 좀더 ...
    • KDDG_ZZOM
      2002.09.04 04:07
      저도 잘몰라요... 우선 캐드랜드가 맞을거예요... 거기서 데모버젼을 받아서 한번해보세요... 서버구성...
    • 김상수
    • 2002.09.04 01:42
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 김영남
      2002.09.04 20:10
      윈도우즈의 데이터 타입형이  'yy-mm-dd'로 되어 있는게 아닌지요? 제어판의 국가별옵션에......
    • 김상수
      2002.09.05 00:18
    • 이중철
      2002.09.04 06:08
      밑져야 본전 이와같이 해보세요.. 심심하시면(잘안된다 싶으면) Typecasting 해보시고요. 델파이5.0이나 4...
    • 김상수
      2002.09.04 18:43
    • 고지범
      2002.09.04 02:13
      안녕하십니까? 지나가던 얼큰입다. TAction 의 경우 해당 액션이 Sender로 올라옵니다. 그리고 폼의 속성...
    • KDDG_ZZOM
      2002.09.04 01:52
      var   vv_i: Integer; begin   with TWinControl(Panel1) do   begin ...