掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
IEの特殊文字をricheditに貼り付けるには (ID:12566)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>クリップボードに貼り付けた特殊文字を含むデーターをどう取り出せばいいのでしょうか。 なるへそ uses Clipbrd; function GetWideStrToClipboard : WideString; var MyHandle: THandle; TextWPtr: PWChar; // CF_TEXT なら PChar MyString: WideString; // ヘルプに載っていた物をPWCharに変えただけです。 begin ClipBoard.Open; try if Clipboard.HasFormat(CF_UNICODETEXT) then begin MyHandle := Clipboard.GetAsHandle(CF_UNICODETEXT); TextWPtr := GlobalLock(MyHandle); MyString := WideString(TextWPtr); GlobalUnlock(MyHandle); end; finally Clipboard.Close; end; Result := MyString; end; procedure TForm1.Button1Click(Sender: TObject); var ft : TFontname; Ws : WideString; begin Ws := GetWideStrToClipboard; Memo1.Text := Ws; ft := Canvas.font.Name; Canvas.font.Name := 'Arial'; Canvas.TextOut(1,20, WideCharToString(PWChar(Ws))); Windows.TextOutW(Canvas.Handle,1,1,PWideChar(Ws) ,Length(Ws)); Canvas.font.Name := ft; end; {* MemoとButtonを一個真ん中あたりに用意して実行してみてください。 wsの値を比較のため。オリジナル文字をフォームの左端に表示します Unicodeをコピーして 実行すればわかりますが、TMemoやTEditに代入すると文字が変わります。 (勝手に変換されます) そういうことでコンポーネントを紹介されているようです。 XPなら C:\WINDOWS\SYSTEM32\clipbrd.exe がクリップボードです。 元の文字を変数間で移動すれば問題ないと思います *}
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.