能不能将含位图和汉字的ole对象字段粘贴到剪切板上?? (20分)

  • 主题发起人 主题发起人 牛虻24
  • 开始时间 开始时间

牛虻24

Unregistered / Unconfirmed
GUEST, unregistred user!
一个ole对象字段,以长二进制数据保存,含图片和文字。
现在想将这个字段复制到剪切板上再粘贴到rxrichedit中,
我试用bitmap,好像不行。graphic行吗???
还是不能以图片格式实现???
或者用别的方法???

stream1:=CreateBlobStream(fieldbyname('答图'), bmRead);
bitmap := Tbitmap.Create;
stream1.Position:=0;
try
bitmap.LoadFromStream(stream1);
clipboard.Assign(bitmap);
chajuan.RxRichEdit2.PasteFromClipboard;
finally
bitmap.Free;
end;
end;
 
直接用dbrxrichedit是不是可以?
 
应该可以,试试下面代码
uses comobj
var TmpOle:TOleContainer;
...
stream1:=CreateBlobStream(fieldbyname('答图'), bmRead);
// bitmap := Tbitmap.Create;
stream1.Position:=0;
try
TmpOle:=TOleContainer.Create(self);
TmpOle.Visible:=false;
TmpOle.Parent:=self;
TmpOle.LoadFromStream(stream1)
// bitmap.LoadFromStream(stream1);
// clipboard.Assign(bitmap);
TmpOle.Copy;
chajuan.RxRichEdit2.PasteFromClipboard;
finally
// bitmap.Free;
TmpOle.free;
end;
end;
 
>>TmpOle.Copy;
>>chajuan.RxRichEdit2.PasteFromClipboard;
咣铛,我倒~~~~~~~ 又是剪贴板......有没有好一点的办法啊?
 
to chji,我刚才按你的方法试了,不行
运行时报错:invald stream format
流格式不对,光标停在 tmpole.copy这句

我是想将这个字段内容放到rxrichedit中的某一位置,rxrichedit还有别的内容
所以好像不能用rxdbrichedit

 
TO:ego,
我都想知道不用粘贴板就能直接转数据的方法![:D]
TO:牛虻24,
出错是因为你字段内的内容不是通过TOleContainer写入的!
因此要先知道你原来的ole对象字段中的内容是如何写入的才能再回复你了
 
原来的字段是以memorystream的方式存入的
 
TO:牛虻24,
我是问你ole对象字段中的内容格式!
 
长二进制数据
MS3:=TMemoryStream.create; /////////////////存入内容
rxrichedit1.Lines.SaveToStream(MS3);
MS3.Position:=0;
TBlobField(FieldbyName(' 答图').LoadFromStream(MS3);
 
rxrichedit.lines.loadfromstream不知道行不行
我在家里没有rx包,没有办法给你调试。
 
大家再给点意见阿
 
因我没有RX的控件,只好根据你的改了,故有些属性可能不正确! 你可以再试试下面的代码

var Tmprichedit:TRxRichEdit;
stream1:TMemoryStream;
....
stream1:=CreateBlobStream(fieldbyname('答图'), bmRead);
stream1.Position:=0;
try
Tmprichedit:=TRxRichEdit.Create(self);
Tmprichedit.Visible:=false;
Tmprichedit.Parent:=self;
Tmprichedit.Lines.LoadFromStream(stream1);
Tmprichedit.SelectAll;
Tmprichedit.CopyToClipboard;
RxRichEdit2.PasteFromClipboard;
finally
Tmprichedit.free;
stream1.Free;
end;
end;

 
to chji,
我按你的方法已经搞定了。

不过还有一个小问题。
我想将这个含图片和文字的长二进制字段与另外添加的字符放在同一行。
比如,在一行的开头加一个数字做题号,后面紧跟着上面这个字段,就是它俩在同一行中
这个该怎么实现????????
或者说,怎么将插入点定位到这个数字后面?????
 
你不可以用 RxRichEdit.SelStart 定位吗?
 
chji,可不可以设一个变量,将剪切板上的内容赋给它,然后用lines.add( 变量 )??????

另外,能不能计算出某一行的字符总长度????????
 
接受答案了.
 
后退
顶部