怎样把Memo控件的字体信息以流的形式保存在INI文件中? 我初学Delphi,用到了下面的问题。我需要把一个程序中的Memo控件的文字以及字体信息保存到INI文件中,而这个文件中还有其它的内容。因为Memo控件中可能含有回车,所以用INI写入字符串是不行了,我把文字转换成流写道了INI文件中。但是现在我不会把所有字体信息以流的形式写入INI文件和从INI文件中读取了。我不想用字符串的形式把字体信息写入INI文件,因为字体信息太多了,包括颜色,字体名字,字体大小等等。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 啊?简而言之,就是想把Memo控件的字体信息,比如字号,颜色等等以流的的形式保存到INI文件中 那就用rtf格式吧如果要写成文本文件的话,就用xml 直接保存,读入 memo控件 也可以啊unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; ColorBox1: TColorBox; BitBtn1: TBitBtn; ColorBox2: TColorBox; edit1: TMemo; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject); procedure ColorBox1Change(Sender: TObject); procedure ColorBox2Change(Sender: TObject); private { Private declarations } public { Public declarations } end;const dir='pp.dat'; //保存memo的文件var Form1: TForm1; pr:TMemoryStream;implementation{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);begin pr.Destroy;end;procedure TForm1.FormCreate(Sender: TObject);begin pr:=TMemoryStream.Create;end;procedure TForm1.Button1Click(Sender: TObject);begin pr.Clear; pr.WriteComponent(Edit1); pr.SaveToFile(dir); 保存end;procedure TForm1.Button2Click(Sender: TObject);beginpr.Clear;pr.LoadFromFile(dir);pr.ReadComponent(Edit1) ; //读入end;procedure TForm1.Button3Click(Sender: TObject);begin edit1.Width:=edit1.Width+2; edit1.Height:=edit1.Height+2;end;procedure TForm1.BitBtn1Click(Sender: TObject);beginedit1.Width:=edit1.Width-2; edit1.Height:=edit1.Height-2;end;procedure TForm1.ColorBox1Change(Sender: TObject);begin edit1.Font.Color:=ColorBox1.Selected;end;procedure TForm1.ColorBox2Change(Sender: TObject);begin edit1.Color:=ColorBox2.Selected;end;end. 什么流的形式,直接savetofile不久可以了吗? 不行,因为单独保存的一个文件中的话,就不能保存别的内容了。因为我想保存到INI文件,这个INI文件中还有其他内容,我想用 TIniFile 类的 WriteBinaryStream 方法保存。但是不会...... 自己写个加解密算法把Memo.Text加密成不是回车的字符串就可以了! Text的内容已经成功的转换成流写入INI文件了,也能成功读取了,现在是想保存它的字体信息 var ms:TMemoryStream; buffer:pchar; size:integer;begin ms.WriteComponent(Memo1); size:=ms.size; getmem(buffer,size); ms.readbuffer(buffer,size); 把buffer内容读到ini文件中 使用ADO数据保存问题 多语言版本 GetScrollPos函数为何总是返回0? 求一个C/S聊天程序(100) 用query做主从报表的问题? 高分求助,其实也不太难 点击最小化按钮问题,参与者有分!!! 拼音转换成汉字!!! 关于怎样使用OpenDialog打开指定的文件 where子句后面条件格式是什么?例如and between or 最好分别写个例子,多多谢 有点晕……我用数据库做个小软,将程序中的edit中的字符复制到记事本时发现是乱码?怎么解决? Delphi7程序无法跟踪调试,怎么处理???
如果要写成文本文件的话,就用xml
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Buttons, ExtCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
ColorBox1: TColorBox;
BitBtn1: TBitBtn;
ColorBox2: TColorBox;
edit1: TMemo;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure ColorBox1Change(Sender: TObject);
procedure ColorBox2Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
const
dir='pp.dat'; //保存memo的文件
var
Form1: TForm1; pr:TMemoryStream;
implementation{$R *.dfm}procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
pr.Destroy;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
pr:=TMemoryStream.Create;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
pr.Clear;
pr.WriteComponent(Edit1);
pr.SaveToFile(dir); 保存
end;procedure TForm1.Button2Click(Sender: TObject);
begin
pr.Clear;
pr.LoadFromFile(dir);
pr.ReadComponent(Edit1) ; //读入
end;procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.Width:=edit1.Width+2;
edit1.Height:=edit1.Height+2;
end;procedure TForm1.BitBtn1Click(Sender: TObject);
begin
edit1.Width:=edit1.Width-2;
edit1.Height:=edit1.Height-2;
end;procedure TForm1.ColorBox1Change(Sender: TObject);
begin
edit1.Font.Color:=ColorBox1.Selected;
end;procedure TForm1.ColorBox2Change(Sender: TObject);
begin
edit1.Color:=ColorBox2.Selected;
end;end.
ms:TMemoryStream;
buffer:pchar;
size:integer;
begin
ms.WriteComponent(Memo1);
size:=ms.size;
getmem(buffer,size);
ms.readbuffer(buffer,size);
把buffer内容读到ini文件中