掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
独自Recordをクリップボードで出し入れしたい (ID:26585)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あたしゃ、こんな感じでストリームから書き込みしとる。 TMemStreamじゃなく、TFileStream使えば、ファイルとして保存できる。 //書き var mstrm: TMemoryStream; mHnd: THandle; dPtr: Pointer; begin mstrm := TMemoryStream.Create; //mstrmに情報書き込み {メモリ確保} mHnd := GlobalAlloc(GMEM_MOVEABLE + GMEM_DDESHARE, mstrm.Size); {ロック} dPtr := GlobalLock(mHnd); try {ストリームから書き込み} mstrm.Position := 0; mstrm.ReadBuffer(dPtr^, mstrm.Size); finally {アンロック} GlobalUnlock(mHnd); end; {クリップボードに貼り付け} ClipBoard.Open; try SetClipboardData(RegisterClipboardFormat('てきとうなフォーマット名'), mHnd); finally ClipBoard.Close; end; mstrm.Free; end; //読み var mstrm: TMemoryStream; mHnd: THandle; dPtr: Pointer; begin Result := ''; mstrm := TMemoryStream.Create; ClipBoard.Open; try {クリップボードから取得} mHnd := ClipBoard.GetAsHandle(RegisterClipboardFormat('てきとうなフォーマット名')); if mHnd > 0 then begin {ロック} dPtr := GlobalLock(mHnd); {ストリームに書き込み} mstrm.WriteBuffer(dPtr^, GlobalSize(mHnd)); {アンロック} GlobalUnlock(mHnd); end else begin Result := 'クリップボードにデータがありません。'; end; finally ClipBoard.Close; end; //ストリームから読み込み end; 実コードからの一部抜粋だが、まぁそれなりに動くだろう。 ちなみに var aaa:String; SizeOf(aaa) = 4 ≠Length(aaa)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.