線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1596
推到 Plurk!
推到 Facebook!

使用剪貼簿(TClipboard)在某些機器會變成亂碼

尚未結案
ganandi_hw
一般會員


發表:2
回覆:1
積分:0
註冊:2004-05-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-05 15:52:25 IP:211.23.xxx.xxx 未訂閱
各位大德,大家好:   之前有在此提出此問題,但因為我再上來看時,我的問題,卻變成亂碼了,故我把他結案掉,重新再提問, 請各位大德不吝賜教小弟我,不勝感激。   我的問題是我使用TClipboard時,在某些機器上複製中文字會變成亂碼,但大部分的機器卻是可以複製中文字, 我的程式碼如下: 
 
procedure TForm1.Button1Click(Sender: TObject);
var
 A:LCID ;
 Clip:TClipboard;
begin
 Clip:=TClipboard.Create;
 Clip.AsText:=Pchar('測試' #9 '測試' #9 '123' #13#10 '測試');
 //Clip.SetTextBuf(Pchar('測試' #9 '測試' #9 '123' #13#10 '測試'));  //兩者我都試過,結果一樣     A:=GetUserDefaultLCID();
 app.Connect;
 app.Visible[0]:=true;     wb.ConnectTo(app.Workbooks.Open(ExtractFilePath(application.ExeName) 'A.XLS',
             EmptyParam,EmptyParam,
             EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
             EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
             A));
 ws.ConnectTo(app.Worksheets['sheet1'] as _WorkSheet);
 ws.Activate(A);     ws.PasteSpecial;
 app.Cells.Item[4,3].Value:='測試' #9 '測試中';     wb.Save(A);
 wb.Close;
 app.Quit;
 app.Disconnect;
 Clip.Free;
end;
我發現問題是出在將中文字寫入剪貼簿時,中文字就變成亂碼了,跟Excel無關, 希望有那位仁人大德為小弟解惑,不勝感激。謝謝。
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-07 14:59:19 IP:218.32.xxx.xxx 未訂閱
Clipbrd Unit 中, 已經有一公用變數 "Clipboard", 應該不需再 Create 了.
ganandi_hw
一般會員


發表:2
回覆:1
積分:0
註冊:2004-05-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-11 08:31:49 IP:211.23.xxx.xxx 未訂閱
感謝版主,我會去試看看的,這兩天我會將結果告知,謝謝您。
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-19 15:10:43 IP:220.131.xxx.xxx 未訂閱
作業系統是98還是2000以上是有差的, 我以前程式是在98開發的,目前用2000開發 舊程式,最近在2000上居然出現亂碼 發現也是clipboard問題,中文出現亂碼 我找了一天,把原來的宣告string改成widestring居然可以用了,原因也不明 我曾經裝過big5unicode補完 不知有無關係, 另外我原用delphi5裝了tntunicodecontrols套件,雖元件可支援unicode 但是程式註解全成了亂碼了 希望我的經驗,可以提供你找答案的方向. 努力會更接近成功
------
努力會更接近成功
pceyes
尊榮會員


發表:70
回覆:657
積分:1140
註冊:2003-03-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-19 15:22:06 IP:220.131.xxx.xxx 未訂閱
偷偷告訴你一下,我目前程式用法如下 TntClipboard.AsWideText :=trim(listbox1.Items[listbox1.Itemindex]); 可以成功將 "游錫方方土" "王建火宣" 等字丟入丟出其他應用程式 Clipboard.AsWideTxt, 能不能用, 你可以試試看 努力會更接近成功
------
努力會更接近成功
系統時間:2024-06-28 18:44:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!