最好不是用的第三方控件。谢谢!

解决方案 »

  1.   

    不如就用一个TRichEdit控件,首先将TListView变成行,最好先算出每
    列的最大宽度,用这个宽度来保证每列一样宽,将每行数据转换成字符串,
    然后送入TRichEdit控件中,然后用TRichEdit的print方法将结果打印
    出来。 
      

  2.   

    1、建一个临时表(或者用TClientDataSet建一个内存表),
    ListView中的列对应到字段,没问题吧?2、把数据拷贝到这个表内
    ListView中的Items对应到记录,没问题吧?3、打印表内数据
    Quick Report打印一个DataSet,没问题吧? 
      

  3.   

    http://search.csdn.net/Expert/topic/53/53330.xml?temp=4.636782E-02
      

  4.   

    把TTreeView输出成 HTML 文件,用IE打印,格式非常灵活,连图标都可以。
      

  5.   

    是treeview,不是listview,
    hehe....
      

  6.   

    补充一下:打印的不仅仅是TREEVIEW的内容,还要能保留树型结构。
      

  7.   

    呵呵,利用TTreeView.SaveToFile把它保存到一个临时文件(文本)
    然后利用OLE调用NotePand,直接沉默打印。 
      

  8.   

    >>是treeview,不是listview知道是TreeView , Html 里面做不出树型来么?打文本也可以:(*// 
    标题:可视树转换成连线文本说明:使用中文制表符构成连线;支持纵横粗细选择设计:Zswang日期:2002-03-12支持:[email protected]//*)///////Begin SourcetypeTThickness = -1..+1;constcGBGridList: array[TThickness, TThickness, TThickness, TThickness] of WideString =(((('┼', '├', '┽'), ('┴', '└', '┵'), ('╁', '┟', '╅')),(('┤', '│', '┥'), ('┘', '↑', '┙'), ('┧', '︾', '┪')),(('┾', '┝', '┿'), ('┶', '┕', '┷'), ('╆', '┢', '╈'))),((('┬', '┌', '┭'), ('─', '→', '《'), ('┰', '┎', '┱')),(('┐', '↓', '┑'), ('←', ' ', '<'), ('┒', '∨', '┓')),(('┮', '┍', '┯'), ('》', '>', '━'), ('┲', '┏', '┳'))),((('╀', '┞', '╃'), ('┸', '┖', '┹'), ('╂', '┠', '╉')),(('┦', '︽', '┩'), ('┚', '∧', '┛'), ('┨', '┃', '┫')),(('╄', '┡', '╇'), ('┺', '┗', '┻'), ('╊', '┣', '╋'))));function TreeViewToDisplay(mTreeView: TTreeView; mStrings: TStrings;mHBold: Boolean = True; mVBold: Boolean = True): Boolean;{ 将可视树转换成可视方式 }varI, J: Integer;T, S: string;H, V: Integer;vTreeNode: TTreeNode;beginResult := False;if not Assigned(mTreeView) then Exit;if not Assigned(mStrings) then Exit;mStrings.Clear;H := Iif(mHBold, +1, -1);V := Iif(mVBold, +1, -1);J := 0;with mTreeView do tryfor I := 0 to Pred(Items.Count) do beginif J > Items[I].Level thenT := Copy(T, 1, Length(T) - (J - Items[I].Level) * 2)else if J < Items[I].Level then T := T + S;vTreeNode := Items[I].GetNextSibling;if not Assigned(vTreeNode) then beginmStrings.Add(T + cGBGridList[V, H, 00, 00] + Items[I].Text);S := cGBGridList[00, 00, 00, 00];end else beginmStrings.Add(T + cGBGridList[V, H, V, 00] + Items[I].Text);S := cGBGridList[V, 00, V, 00];end;J := Items[I].Level;end;exceptExit;end;Result := True;end; { TreeViewToDisplay }///////End Source///////Begin Demoprocedure TForm1.Button1Click(Sender: TObject);beginTreeViewToDisplay(TreeView1, Memo1.Lines, CheckBox1.Checked, CheckBox2.Checked);end;///////End Demo
      

  9.   

    楼上的几位,别把dfw里的答复原样拷贝过来,成不成?