全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1362
推到 Plurk!
推到 Facebook!

聊天軟體 遇到困雖了

尚未結案
阿峰
一般會員


發表:1
回覆:1
積分:0
註冊:2005-04-14

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-10 00:00:58 IP:61.70.xxx.xxx 未訂閱
目前做的 能連線 能對話 但是表情符號上就怪怪的 能顯示出來了 但是會有問題 圖的位置錯勿,還有只能顯現一個表情 不知道要怎麼改才好~"~ 請大大們教我 或是能提供我一個範例嗎???拜托    //把訊息中的表情變成圖
procedure TForm1.ShowMessage(Msg:String);
var i,nu:integer;
    Posnu:integer;
    BMP:TBitmap;
    SS:TStringStream;
const Picnu:array[0..9] of string=('<#0#>','<#1#>','<#2#>',
'<#3#>','<#4#>','<#5#>','<#6#>','<#7#>','<#8#>','<#9#>');
begin
  For i:= 0 to 9 do
    begin
    Posnu:=Pos(picnu[i],Msg);
    if Posnu <> 0 then
      begin
        RichEdit1.Text:=RichEdit1.Text Copy(Msg,1,Posnu-1);
        Delete(Msg,1,Posnu 4);
        //顯示表情
        BMP:=TBitmap.Create;
        BMP.LoadFromFile('Pictures\' inttostr(i) '.bmp');
        SS := TStringStream.Create(BitmapToRTF(BMP));
        AddImage(RichEdit1,SS);
        SS.Free;
        BMP.Free;
        GoBottom(RichEdit1);
      end;
    end;
RichEdit1.Text:=RichEdit1.Text #13#10;
end;
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-10 11:13:19 IP:220.132.xxx.xxx 未訂閱
阿峰 你好: 因為.. 你用FOR來做所以他只跑10次,若<#5#>在<#2#>前面 那程式會先找到2的那一個那5的不會再出現了因為 你delete掉了他不存在Msg裡面了
------
======================
昏睡~
不昏睡~
不由昏睡~
阿峰
一般會員


發表:1
回覆:1
積分:0
註冊:2005-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-10 16:01:25 IP:218.175.xxx.xxx 未訂閱
ko 前輩 多謝您的回應 您說的問題,我瞭解了... 可是我主要的問題是在於..我顯示一個"表情"後 我不知道怎麼把表情後面的文字,再串接到表情的後面... 或是有其它的方法,可以先把關鍵字轉成圖案,然後再與文字一同輸出呢?? 麻煩各位大大指教,謝謝!!
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-10 17:16:10 IP:221.169.xxx.xxx 未訂閱
你這樣的標題不太合適耶。 因為你的問題不在網路問題。 而是普通的貼圖。。。。。。 這樣的標題。比較不會有可以解決你這個問題的人進來喔。
boson
中階會員


發表:74
回覆:155
積分:85
註冊:2004-07-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-10 21:34:31 IP:70.84.xxx.xxx 未訂閱
這樣試試看 :     
 
   i:=Pos('<#', Msg);
   while (i > 0) do begin
      if (i 2 <= length(Msg)) and (Msg[i 2] in ['0'..'9']) and (copy(Msg,i 3,2) = '#>') then begin
         RichEdit1.Text:=RichEdit1.Text Copy(Msg,1,i-1);
         BMP:=TBitmap.Create;
         Try
            BMP.LoadFromFile('Pictures\' Msg[i 2] '.bmp');
            SS := TStringStream.Create(BitmapToRTF(BMP));
            AddImage(RichEdit1,SS);
         finally
            BMP.Free;
         end;
         GoBottom(RichEdit1);
         Msg:=copy(Msg,i 5,length(Msg));
      end else begin
         RichEdit1.Text:=RichEdit1.Text Copy(Msg,1,i 1);
         Msg:=copy(Msg,i 2,length(Msg));
      end;
      i:=Pos('<#', Msg);
   end;
我隨便寫寫, 沒 compile 過, 不知道正不正確 ? 若有一點小錯誤, 請自行修正 同時, 建議將 BMP 移到 while 迴圈外面來 create, 效率高得多 發表人 - boson 於 2005/05/10 23:25:08
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-11 09:38:11 IP:220.132.xxx.xxx 未訂閱
阿峰 你好: 我沒辦法改你的code因為BitmapToRTF,AddImage,GoBottom 這3個function我沒有 但是我給你個方向 用for迴圈..delete 的話只刪'<#?#>' 條件是 for i:=0 to Length(Msg) do
------
======================
昏睡~
不昏睡~
不由昏睡~
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-04-26 13:50:51 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-15 3:12:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!