ユニットを使用するClipbrd
と、テキストの破損が発生することを知っている人はいますか?
ビットマップにアクセスした後
bitmap.Assign(Clipboard);
クリップボードからのテキストが破損しているようです。英語では問題なく動作しますが、次のような奇妙な文字にシフトします
ã
これは「オープンバグ」ですか?
これを処理し、コンピューターを再起動せずにクリップボードを通常の操作に戻す方法はありますか?
コード
Clipboard.Open;
bitmap.Assign(Clipboard);
Clipboard.Close;
同じ結果になります。
私の推測では、エンコーディングでどこかに行くと思います。
クリップボードの破損は、ソフトウェア外のユーザー エクスペリエンスのためのものです。クリップボードは、英語以外の言語では使用できなくなります。
写真を抽出した後、Delphi またはソフトウェアをシャットダウンした後でも、クリップボードは英語以外を転送できません。
私は以下でテストしています:
大日本帝國</p>
結果をコピーして貼り付けます:
?????
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
- コンパイルして実行します。
- スタート→実行
- 次に入力します(ここからコピーしないでください!)
גדכלחילדגחכי
次に貼り付けます。
éâãëìçéìãâçëé