请问有用过RXRichEdit的吗??如何解决在加载图片后RxRichEdit1.text只多出一个空格的问题??

[复制链接]
查看11 | 回复8 | 2021-1-27 07:04:30 | 显示全部楼层 |阅读模式
我现在在写一个网络聊天程序。想实现一个发送图片的功能。我用的方法是把图片转换成RTF格式的字符的方式。
具体实现的方法是
rxrichedit1.seltext:=bmptortf(bmp);
rxrichedit1.sellength:=0;
rxrichedit1.selstart:=rxrichedit1.selstart+1;
经过断点跟踪后我发现,rxrichexit1.text还是rxrichedit1.seltext之类的能显示目前编辑框的内容的属性,在加载了图片()图片已经加载成功了之后,只多出来了一个空格。。。。。
我现在想的就是如何让.text多出来一段rtf代码(就是bmptortf函数返回的那个string值),这样的话发送给别人后,对方的rxrichedit控件加上这段代码才会显示
或者用其他的办法能让我能在发送的时候知道这个rxrichedit上面到底加载了什么图片,因为现在来说如果.text属性只多出了一个空格的话我是无法知道这个图片到底是什么的。
急求解决方法!!!!!我在百度谷歌上面搜了好久都没有答案!!!还是说这个控件就只能这样??那能推荐别的能支持图文混编的控件吗??我已经给了100分了!!求解!!
分 -->
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层
我用Trichedit试了下,执行插入图片操作,多加[{/rtf1{/pict/dibitmap?]字符串
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层
引用1楼simonhehe的回复:我用Trichedit试了下,执行插入图片操作,多加[{/rtf1{/pict/dibitmap?]字符串
请能详细说明一下吗,我用的是rxrichedit控件,用BmpToRtf()函数返回的时候会加上那个字符串,但是在text属性里面不会显示出来
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层
引用2楼LCPDtiger的回复:引用1楼simonhehe的回复:我用Trichedit试了下,执行插入图片操作,多加[{/rtf1{/pict/dibitmap?]字符串
请能详细说明一下吗,我用的是rxrichedit控件,用BmpToRtf()函数返回的时候会加上那个字符串,但是在text属性里面不会显示出来

估计得找rxrichedit的原因了,我测试代码如下
uses
JPEG,Clipbrd;
{$R*.dfm}
functionBMPToRTF(constBitmap:TBitmap):string;
var
bi,bb:string;
bis,bbs:Cardinal;
achar:string[2];
Buffer:string;
I:Integer;
type
PWord=^Word;
begin
GetDIBSizes(Bitmap.Handle,bis,bbs);
SetLength(bi,bis);
SetLength(bb,bbs);
GetDIB(Bitmap.Handle,Bitmap.Palette,PChar(bi)^,PChar(bb)^);
SetLength(Buffer,(Length(bb)+Length(bi))*2);
i:=1;
forbis:=1toLength(bi)do
begin
achar:=IntToHex(Integer(bi[bis]),2);
PWord(@Buffer)^:=PWord(@achar[1])^;
inc(i,2);
end;
forbbs:=1toLength(bb)do
begin
achar:=IntToHex(Integer(bb[bbs]),2);
PWord(@Buffer)^:=PWord(@achar[1])^;
inc(i,2);
end;
Result:='{/rtf1{/pict/dibitmap'+Buffer+'}}';
ShowMessage(inttostr(length(Result)));
end;
procedureTForm13.btn1Click(Sender:TObject);
begin
redt1.seltext:=BMPToRTF(img1.Picture.Bitmap);
redt1.sellength:=0;
redt1.selstart:=redt1.selstart+1;
end;
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层
引用3楼simonhehe的回复:引用2楼LCPDtiger的回复:引用1楼simonhehe的回复:我用Trichedit试了下,执行插入图片操作,多加[{/rtf1{/pict/dibitmap?]字符串
请能详细说明一下吗,我用的是rxrichedit控件,用BmpToRtf()函数返回的时候会加上那个字符串,但是在text属性里面不会显示出来
估计得找rxric……

我就是用的这个函数
那您在测试这个代码以后断点跟踪过redt1.text的值吗??是不是也是只多出了一个空格??
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层
引用4楼LCPDtiger的回复:引用3楼simonhehe的回复:引用2楼LCPDtiger的回复:引用1楼simonhehe的回复:我用Trichedit试了下,执行插入图片操作,多加[{/rtf1{/pict/dibitmap?]字符串
请能详细说明一下吗,我用的是rxrichedit控件,用BmpToRtf()函数返回的时候会加上那个字符串,但是在text属性……

Result:='{/rtf1{/pict/dibitmap'+Buffer+'}}';
多了Result的值
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层
引用5楼simonhehe的回复:引用4楼LCPDtiger的回复:引用3楼simonhehe的回复:引用2楼LCPDtiger的回复:引用1楼simonhehe的回复:我用Trichedit试了下,执行插入图片操作,多加[{/rtf1{/pict/dibitmap?]字符串
请能详细说明一下吗,我用的是rxrichedit控件,用BmpToRtf()函数返回……
是吗??可能是版本问题了吧。。。请问你用的是rxlib的哪个版本?。。。
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层
请问楼主这个问题解决了没?
我也有相同的困惑啊
我想在插入一个图片以后,不换行的情况下:图片后面再追加一段文字,貌似都找不到方法来实现
如果要加入图文混排的内容,就更加没办法实现了
回复

使用道具 举报

千问 | 2021-1-27 07:04:30 | 显示全部楼层

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行