Q&A

  • TreeView내용을 전부 출력하는 법좀....
제목 그대로 TreeView의 내용을 전부 출력하는 방법 좀 갈켜주세여

검색을 해서 그대로 해봤는데....

중간에 몇장이 빠져있네요... 글씨도 넘 큰거같고...

소스를 이해하기도 힘드네여 초보라서리.......

혹시 알고 계시는 분 있으시면 답변 꼭 부탁드립니다.

즐거운 하루 되세여

소스도 같이 올립니다.



TTreePrint = class

private

FTreeView: TTreeView;

nX, nY: integer;

nOffsetX, nOffsetY: integer;

nGap: integer;

nLineWidth: integer;

nHeight: integer;

protected

procedure PrintTreeViewNode(tn: TTreeNode);

public

constructor Create(ATreeView: TTreeView); reintroduce;

procedure PrintTreeView;

procedure AdjustLine;

procedure DrawParentLine(tn: TTreeNode);

published

property XOffset : integer read nOffsetX write nOffsetX;

property YOffset : integer read nOffsetY write nOffsetY;

property Gap : integer read nGap write nGap;

property LineWidth: integer read nLineWidth write nLineWidth;

end;



procedure TKIT_A05_F.SpeedButton2Click(Sender: TObject);

var

tp: TTreePrint;

begin

tp := TTreePrint.Create(TreeView1);

try

tp.PrintTreeView;

finally

tp.Free;

end;

end;



constructor TTreePrint.Create(ATreeView: TTreeView);

begin

nOffsetX := 0;

nOffsetY := 0;

nGap := 150;

nLineWidth := 100;

FTreeView := ATreeView;



inherited Create;

end;



procedure TTreePrint.AdjustLine;

begin

if nY < nHeight - Printer.PageHeight then begin

Printer.NewPage;

nY := -nOffsetY;

end

else nY := nY - nHeight;

end;



procedure TTreePrint.DrawParentLine(tn: TTreeNode);

var

ParentNode: TTreeNode;

begin

ParentNode := tn.Parent;

if Assigned(ParentNode) then begin

if ParentNode.getNextSibling <> nil then begin

Printer.Canvas.MoveTo(nOffsetX + ParentNode.Level*nGap, nY);

Printer.Canvas.LineTo(nOffsetX + ParentNode.Level*nGap, nY - nHeight);

end;

DrawParentLine(ParentNode);

end;

end;



procedure TTreePrint.PrintTreeViewNode(tn: TTreeNode);

begin

if Assigned(tn) then begin

AdjustLine;

DrawParentLine(tn);



nX := nOffsetX + tn.Level*nGap;



if tn = FTreeView.Items.GetFirstNode then

printer.Canvas.MoveTo(nX, nY - nHeight div 2)

else Printer.Canvas.MoveTo(nX, nY);



if tn.getNextSibling <> nil then begin

Printer.Canvas.LineTo(nX, nY - nHeight);

Printer.Canvas.MoveTo(nX, nY - nHeight div 2);

end

else Printer.Canvas.LineTo(nX, nY - nHeight div 2);



Printer.Canvas.LineTo(nX + nLineWidth, nY - nHeight div 2);



Printer.Canvas.TextOut(nX + nLineWidth + 1, nY, tn.Text);

PrintTreeViewNode(tn.getFirstChild);

PrintTreeViewNode(tn.GetNextSibling);

end;

end;



procedure TTreePrint.PrintTreeView;

var

nOldMapMode: integer;

begin

nX := nOffsetX;

nY := -nOffsetY;



Printer.BeginDoc;

nOldMapMode := SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC);

nHeight := Printer.Canvas.TextHeight('');

try

PrintTreeViewNode(FTreeView.Items.GetFirstNode);

finally

SetMapMode(Printer.Canvas.Handle, nOldMapMode);

Printer.EndDoc;

end;

end;



0  COMMENTS
    • 최계호
    • 2001.06.08 23:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.06.09 00:29
      안녕하세요. 최용일입니다.... 검색을 먼저 해보셨으면 답을 쉽게 구하셨을텐데... 아쉽군요... TStr...
    • 최계호
      2001.06.09 00:56
      덕분에 해결이 되었습니다. 정말 감사합니다...
    • 심현지
    • 2001.06.08 23:28
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.06.09 00:37
      안녕하세요. 최용일입니다. 패키지파일을 열어서 예전걸 지우시고 새로운것을 넣어서 컴파일하세요... ...
    • 김현
      2001.06.09 03:29
      select 음악명, 지역, sum(판매액) from table명 group by 음악명, 지역 order by 음악명, 지역 rockn...
    • 김현
      2001.06.09 03:26
      select 음악명, 지역, sum(판매액) from 테이블명 group by 음악명, 지역 order by 음악명, 지역(해도되...
    • 최용일
      2001.06.09 00:03
      안녕하세요. 최용일입니다... 누구신지??? 저를 아시나요??? 이름을 밝히고 질문하시는것이 예의일거같...
    • 너억대
    • 2001.06.08 22:19
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.06.09 00:06
      검색은 빠른 답변을 찾는 지름길입니다... http://www.delphi.co.kr/cgi-bin/cwb/CrazyWWWBoard.cgi?mod...
    • 델초보
    • 2001.06.08 22:08
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2001.06.09 00:15
      100% 확신할 수는 없지만요.. 만약에 DATABASE를 원격지 연결하고 ODBC 세팅을 통해서 연결하는 경우라...
    • Saving
    • 2001.06.08 22:01
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 김지엽
      2001.06.09 00:44
      Database Not Assigned 라는 에러는, 해당 DataSet의 TDatabase property에 데이터베이스 명이 지정되지 않...
    • Saving
      2001.06.09 02:39
      김지엽 wrote: > Database Not Assigned 라는 에러는, 해당 DataSet의 TDatabase property에 데이터베이스...
    • 한상훈
    • 2001.06.08 21:47
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 최용일
      2001.06.09 00:34
      안녕하세요. 최용일입니다. 메인메뉴의 GroupIndex를 맞추어주세요... 같은 그룹인덱스를 가지면 병합되...
    • 대두
      2001.06.08 23:28
      요로케 해보셔요.... TBlobField(parambyname('image1')).assign(image1.picture.bitmap); .... ...
    • 김하늘
      2001.06.08 22:13
      코딩내용상 비트맵으로 저장 되나 보군여... 델파이 Data Controls 탭에 TDBImage란 컴포넌트를 사용해...
    • 아메리칸파이`
      2001.06.08 22:20
      답변 감사드리고요.. db에 이미지가 저장될 필드를 blob로 설정을 했는데요.. 아래 코딩대로 해서 저...
    • 김하늘
      2001.06.09 00:15
      대문자로 BLOB 이라고 찍혀있다면 값을 들어간것 같네요... 비트맵이라면 SQL Explorer 를 사용하여 Expl...
    • 델초보
      2001.06.09 01:23
      김하늘 wrote: > 대문자로 BLOB 이라고 찍혀있다면 값을 들어간것 같네요... > 비트맵이라면 SQL Explore...
    • 델초보
      2001.06.08 21:38
      아메리칸파이 wrote: > 안녕하십니까? > > 델파이5.0과 mysql을 이용하여, db에 이미지를 꼭 저장해야 ...
    • 아메리칸파이`
      2001.06.08 21:55
      델초보 wrote: > 아메리칸파이 wrote: > > 안녕하십니까? > > > > 델파이5.0과 mysql을 이용하여, db...
    • 델초보
      2001.06.08 21:44
      진짜초보 wrote: > 달력 프로그램 소스 좀 보고 싶은데... > 내부적으로 어떻게 돌아가는지 알고 싶거든...
    • 바람개비
      2001.06.08 21:31
      달력은 내장된 컴포넌트를 쓰셔도 될텐데.. 저는 이렇게 만들었었습니다. 오래되어서 소스는 없어졌지만 ...
    • 초보
    • 2001.06.08 21:14
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 박문수
    • 2001.06.08 20:57
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 태수기
      2001.06.09 00:31
      박문수 wrote: > 기존 오라클8.0.4에서는 BDE설치시 VENDOR INIT => ORA73.DLL 을 지정했는데, > 오라클 ...
    • mafioso
      2001.06.08 21:44
      환경에 따라 어떨지는 모르겠습니다만 저두 WIN2000(SERVER, PRO)에서 쓰는데 잘 됩니다. DLL : SQLOR...
    • 2001.06.08 20:40
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 델초보
      2001.06.08 21:15
      짱 wrote: > 처음 프로그램을 실행했을때 즉 Form이 create될때 Database와 Connect를 합니다. > 그런데 ...
    • 2001.06.08 22:24
      델초보 wrote: > 짱 wrote: > > 처음 프로그램을 실행했을때 즉 Form이 create될때 Database와 Connect를...
    • 마으미
      2001.06.13 10:48
      그냥 SQL 서버 에이전트에 넣어 두시면 되겠는데.. 긁적.. 긁적.. SHRINKFILE이나 SHRINKDATABASE을 참고 ...
    • vilot
    • 2001.06.08 20:13
    • 0 COMMENTS
    • /
    • 0 LIKES
    • *^^*
    • 2001.06.08 19:57
    • 3 COMMENTS
    • /
    • 0 LIKES
    • 델초보
      2001.06.08 21:40
      *^^* wrote: > JPEG.dcu 파일을 delphi 4.0에서 가져와서 > 등록시키려구 하는데.. > 등록이 안된다고 ...
    • 김하늘
      2001.06.08 22:15
      JPEG은 델4.0에서 지원하는 걸루 아는데여... 컴포넌트 설치안하셔도 되는걸루 알고 있는건데 제가 잘못알...
    • 델맹
      2001.06.09 00:06
      *^^* wrote: > 소스가 델 2.0이라서 2.0에서 사용해야 하거든요.. > 델파이는 2.0, 4.0 둘다 있거든요.. ...
    • 궁금이
    • 2001.06.08 19:34
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이재석
      2001.06.12 19:43
      궁금이 wrote: > 초보로서 궁금한점이 있어 질문 드립니다. > 엑셀프로그램을 여러명이서 네트워크로 공...
    • .
      2001.06.08 21:39
      안됩니다.