请问哪种类似MEMO的文本控件可以支持行间距设置?(100分)

  • 主题发起人 主题发起人 叮叮当当
  • 开始时间 开始时间

叮叮当当

Unregistered / Unconfirmed
GUEST, unregistred user!
求类似MEMO这样的文本显示控件,要求支持行间距设置,RICHEDIT好像不行。
 
RichEdit可以的,只不过需要编程实现,在DELPHI安装目录下有一个DEMO目录,
好象有一个RICHEDIT的示例,你自己看一下吧!
我记得在N年前我编的一个字处理程序实现了该功能,具体编码不要向我要了,
可能早就删了!呵呵!
如果没有特殊需求的话也可以用WORD的COM组件实现,将程序中嵌入
WORD做一个二次开发.
 
我看了Delphi那个RichEdit控件的Demo,没有看到有设置行间距的功能啊。
 
还是用Servers里的控件TWordApplication,TWordDocument等控件完成支持中文较好!
 
To: linsb
如果用户的机器里没装Word怎么办?
能否给一个例程?
 
一般都应装,不装不正常。
例:
procedure Tform1.NewDocument;
var
Template, NewTemplate, ItemIndex, DocumentType, Visible: OleVariant;
begin
Template := EmptyParam;
NewTemplate := false; //True;
DocumentType := $00000000; // $00000001;
Visible := true;
ItemIndex := 1;
WordApp.Documents.Add(Template, NewTemplate, DocumentType, Visible);
Doc.ConnectTo(WordApp.Documents.Item(ItemIndex));
end;


procedure TForm1.Button1Click(Sender: TObject);
var
Pars: Paragraphs;
ARange: Range;
n:Integer;
DefaultTableBehavior, AutoFitBehavior, count, ex_Var: OleVariant;
begin
try
WordApp.Connect;
except
MessageDlg('Word可能没有安装!', mtError, [mbOk], 0);
Abort;
end;
WordApp.Connect;
WordApp.Visible := True;
WordApp.Caption := 'Delphi automation';
NewDocument;
Pars := Doc.Paragraphs;
n := pars.Get_Count;
Pars.Add(EmptyParam);
ARange := Pars.Item(n).Range;
ARange.Text:='严禁复制';
Pars.Add(EmptyParam);
n:=n+1;
ARange := Pars.Item(n).Range;
ARange.Text:='用后返回';
ARange.Font.Name := '黑体';
ARange.Font.size := 12;
ARange.Font.Bold := integer(True);
DefaultTableBehavior := wdWord9TableBehavior;
AutoFitBehavior := wdAutoFitContent;
Pars.Add(EmptyParam);
ARange := Pars.Item(pars.Get_Count).Range;
doc.Tables.Add(aRange, 1, 1, DefaultTableBehavior, AutoFitBehavior);
ARange.Font.size := 16;
Doc.Tables.Item(1).Cell(1, 1).Range.InsertAfter('绝 密');
ARange.Font.size := 16;
ARange.ParagraphFormat.Alignment := wdAlignParagraphCenter;
Doc.Tables.Item(1).Rows.LeftIndent := 11 * 28.35;
n := pars.Get_Count;
Pars.Add(EmptyParam);
ARange := Pars.Item(n).Range;
ARange.Text:='严禁复制';
Pars.Add(EmptyParam);
n:=n+1;
ARange := Pars.Item(n).Range;
ARange.Text:='用后返回';
ARange.ParagraphFormat.LineSpacingRule := wdLineSpaceExactly;
ARange.ParagraphFormat.LineSpacing :=20;//设置行间距
ARange.ParagraphFormat.LineSpacingRule := wdLineSpaceSingle;
end;
 
To: linsb
可是我要的是窗体上显示的类似Memo的文本显示呀,不要打开Word。
 
将word文件内容copy到Richedit
加:
wordapp.Selection.WholeStory;
wordapp.Selection.Copy;
RichEdit1.PasteFromClipboard;
memo不支持格式!
 
倒~ 要这么麻烦啊,不过还是谢谢linsb了。
看看其他人有没有简单的办法。
 
memo肯定不支持格式化的,richedit支持格式化的文本,但至今没发现设置行间距的语句,
只好在word中设置好导入Richedit。
 
连Ultra Edit都不支持
 
那能不能用WindowsAPI里的TextOut函数自己写显示文本的功能?这样的话控制行间距
应该没问题了吧?不过不知道如何判断该换行了啊。
 
memo 不能实现行距

richedit 可以,你可以看rxlib 2.75 里面有个memo要比delphi带的要好的多
 
To: hamsoft
rxlib 2.75 是什么东东?在哪里下载?
 
程序员大本营里就有,
我以前也有,不过忘记是在什么地方下的,你搜索一下,很多的delphi主页就有下。就是
在sohu.com 里搜索rxlib2.75就可以。
 
To: hamsoft
都是D5的,我需要For Delphi6的,有么?
 
For Delphi6
http://www.playicq.com/dispdoc.asp?id=94
http://vcl.vclxx.org/DELPHI/D32FREE/RX275D6.ZIP
 
D6版也有!
 
是用RxRichEdit么?
 
后退
顶部