當使用單位Clipbrd任何人都知道發生文字腐敗?Clipbrd德爾福腐敗
從剪貼板訪問位圖
bitmap.Assign(Clipboard);
文本後似乎已損壞。使用英語它可以正常工作,但它會轉換爲奇怪的字符,如 ã
你知道一個「開放的bug」嗎?
您是否知道如何處理此問題並將剪貼板恢復到正常操作狀態而無需重新啓動計算機?
更新: 代碼
Clipboard.Open;
bitmap.Assign(Clipboard);
Clipboard.Close;
結果相同的結果。 我的猜測是去編碼的地方。
update2: 剪貼板的損壞是爲了軟件外的用戶體驗。剪貼板不適用於非英語語言。 在任何提取圖片後,即使Delphi關閉後,剪貼板仍無法傳輸非英語,或軟件。
測試用:
大日本帝國
複製和粘貼的結果:
?????
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls,Clipbrd, StdCtrls;
type
TForm4 = class(TForm)
img1: TImage;
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.btn1Click(Sender: TObject);
var
bitmap : TBitmap;
begin
bitmap := TBitmap.Create;
bitmap.Assign(Clipboard);
img1.picture.Assign(bitmap);
FreeAndNil(bitmap);
end;
end.
DFM:
object Form4: TForm4
Left = 0
Top = 0
Caption = 'Form4'
ClientHeight = 282
ClientWidth = 418
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object img1: TImage
Left = 168
Top = 64
Width = 105
Height = 105
end
object btn1: TButton
Left = 184
Top = 232
Width = 75
Height = 25
Caption = 'btn1'
TabOrder = 0
OnClick = btn1Click
end
end
編譯和執行。 開始 - >運行 然後鍵入(!不要從這裏複製)
יגדכלחילדגחכי
然後粘貼回來,你會得到
éâãëìçéìãâçëé
您是否試過Clipboard.Clear;或Clipboard.Open的組合;/Clipboard.Close; ? – ertx
如果用戶想使用剪貼板供自己使用,第一次他得到一個〜然後他只得到?文本有一個不清楚的轉變。 – none
顯示允許複製問題的完整程序和說明。否則,這是一個沒有問題的問題。 –