TRichEdit的问题,本小姐跳楼价500分。(50分)

  • 主题发起人 主题发起人 lah998
  • 开始时间 开始时间
L

lah998

Unregistered / Unconfirmed
GUEST, unregistred user!
读流文件,从流中取一部分输到TRichEdit1中。
如果当ScrollBars属性设置为ssNone时,输到TRichEdit1中的文本正常。
当ScrollBars属性设置为有滚动条时,输到TRichEdit1中的文本就乱了。
请问如何解决?
 
你们真的没遇到过?
 
没啊。你的delphi打了补丁没有呀?
 
没有打补丁
 
Function Loadstr(n:Integer):string;//读标题对应的文章函数
var
meint:integer;
s1:Pchar;
fs:TFileStream;
begin
fs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmOpenRead );
try
getmem(s1,fs.size);
fs.Seek(n,soFromBeginning);
fs.Readbuffer (meint,sizeof(meint));
fs.Seek((n+meint+4),soFromBeginning);
fs.Readbuffer(meint,sizeof(meint));
fs.Readbuffer(s1^,meint);
Result:=s1;
freemem(s1);

finally
fs.free;
end;
end;


procedure TForm1.ListBox1Click(Sender: TObject);

begin
If ListBox1.ItemIndex<>-1 Then
Listbox2.ItemIndex :=Listbox1.ItemIndex ;
RichEdit1.Text:=loadstr(strtoint(ListBox2.Items.Strings[ListBox2.ItemIndex]));
end;

Function mywrite(Bstr,Sstr:string):Boolean;//写入流的函数
var
s,s1:Pchar;
meint:integer;
fs:TFileStream;
begin
try
if FileExists((Extractfilepath(Application.ExeName)+'Mybook.txt')) then//判断文件在不在
begin
fs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmOpenWrite );
end
else
begin
fs:=TFileStream.Create((Extractfilepath(Application.ExeName)+'Mybook.txt'),fmCreate );
end;
s:=Pchar(Trim(Bstr));
s1:=pchar(Trim(Sstr));

try
fs.Seek(0,soFromEnd);//指针移到文件尾
meint:=length(s);//计算字符串大小
fs.Writebuffer(meint,sizeof(meint));//把大小写入文件
fs.Writebuffer(s^,Length(s));//把字符串写入文件
meint:=length(s1);//计算第二个字符串的大小
fs.Writebuffer(meint,sizeof(meint));//把大小写入文件
fs.Writebuffer(s1^,length(s1));//把第二个字符串写入文件
finally
fs.free;
end;
except
Result:=False;
Exit;
end;
Result:=True;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
if RichEdit1.Text <>'' then//如果文件框中是空将不保存
begin
if Edit1.Text <>'' then
begin
myWrite(Edit1.Text ,RichEdit1.Text );
Button1.Enabled :=false;
Application.MessageBox('保存成功!','信息',MB_ICONINFORMATION+MB_OK);
end;
end
else
Application.MessageBox('文本框中不能为空!','信息',MB_ICONINFORMATION+MB_OK);
end;
 
是不是中文乱了,西文没有问题?
 
s:=Pchar(Trim(Bstr));
s1:=pchar(Trim(Sstr));
Bstr、Cstr是什么东西,这以后s、s1不是安全可用的指针
 
我觉得rich的都不好用。包括qrrichtext,经常出现一些莫名其妙的东东。
都不知道该怎么办
 
为什么不用

RichEdit1.Lines.LoadFromFile
 
你把你的font设定为宋体而不要设定为新宋体就好了。
 
小姐用的什么操作系统啊
 
噢,原来这位就是名叫“刘安红”的女富翁呀,
在字体设置中把字符集改成“CHINESE_GB2312”就好了
 
谢谢你们的回答,不过你们没正确解决我的问题。
我找到资料了,不是richedit的问题。
问题我已经彻底解决,谢谢各位。
 
后退
顶部