我現在在寫一個網路聊天程式。想實作一個發送圖片的功能。我用的方法是把圖片轉換成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分了!!求解!!
uj5u.com熱心網友回復:
我用Trichedit試了下, 執行插入圖片操作, 多加[{/rtf1 {/pict/dibitmap ?]字串uj5u.com熱心網友回復:
請能詳細說明一下嗎,我用的是rxrichedit控制元件,用BmpToRtf()函式回傳的時候會加上那個字串,但是在text屬性里面不會顯示出來
uj5u.com熱心網友回復:
估計得找rxrichedit的原因了, 我測驗代碼如下
uses
JPEG,Clipbrd;
{$R *.dfm}
function BMPToRTF(const Bitmap: 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;
for bis := 1 to Length(bi) do
begin
achar := IntToHex(Integer(bi[bis]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
for bbs := 1 to Length(bb) do
begin
achar := IntToHex(Integer(bb[bbs]), 2);
PWord(@Buffer[i])^ := PWord(@achar[1])^;
inc(i, 2);
end;
Result := '{/rtf1 {/pict/dibitmap ' + Buffer + ' }}';
ShowMessage(inttostr(length(Result)));
end;
procedure TForm13.btn1Click(Sender: TObject);
begin
redt1.seltext:=BMPToRTF(img1.Picture.Bitmap);
redt1.sellength:=0;
redt1.selstart:=redt1.selstart+1;
end;
uj5u.com熱心網友回復:
我就是用的這個函式
那您在測驗這個代碼以后斷點跟蹤過redt1.text的值嗎??是不是也是只多出了一個空格??
uj5u.com熱心網友回復:
Result := '{/rtf1 {/pict/dibitmap ' + Buffer + ' }}';
多了Result的值
uj5u.com熱心網友回復:
是嗎??可能是版本問題了吧。。。請問你用的是rxlib的哪個版本?。。。uj5u.com熱心網友回復:
請問樓主這個問題解決了沒?我也有相同的困惑啊
我想在插入一個圖片以后,不換行的情況下:圖片后面再追加一段文字,貌似都找不到方法來實作
如果要加入圖文混排的內容,就更加沒辦法實作了
uj5u.com熱心網友回復:
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130922.html
標籤:VCL組件開發及應用
下一篇:播放音頻及圖片滾動問題
