自アプリ間で配列をクリップボードで受け渡しするには?

解決


大鼻  2005-07-06 08:34:52  No: 16206  IP: 192.*.*.*

いつもお世話になっております。
クリップボードを使って自アプリ間でデータの受け渡しを行いたく色々調べてみましたが理解できず困り果てております。
受け渡ししたいデータは下のようなものですが、実際はもっと多くの要素で成り立っていてますし、typeも沢山あります。
ご教授願います。
type
  TMyDataA=packed record
    color:TColor;
    Moji :String;
    MojiSiz :Integer;
end;
type
  TMyDataB=packed record
    color:TColor;
    ZahyouX:single;
    ZahyouY:single;
end;
var Moji:Array of TMyDataA;
    Ten:Array of TMyDataB;

編集 削除
たかみちえ  URL  2005-07-06 08:57:09  No: 16207  IP: 192.*.*.*

独自フォーマットをクリップボードに登録する方法です。
http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N014.html

編集 削除
大鼻  2005-07-06 09:40:06  No: 16208  IP: 192.*.*.*

たかみちえさん、すばやい返答ありがとうござうます。
大鼻です。
Mr_XRAYさんのところへ行ってみました。
恥ずかしながら、私には難しく理解するには時間がかかりそうです。
もう少し簡素に解説しているところはないのでしょうか?

編集 削除
anone  2005-07-06 09:45:30  No: 16209  IP: 192.*.*.*

理解できないければ、たんにコンポーネントを使うだけでは?

編集 削除
大鼻  2005-07-06 09:57:36  No: 16210  IP: 192.*.*.*

anoneさん。ありがとうございます。
大鼻です。
>http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N014.html
にあるunit CopyPasteUnitをそのまま使う?でいいのでしょうか?
また使用する際には著作権等の問題はないのでしょうか?

編集 削除
大鼻  2005-07-06 11:40:38  No: 16211  IP: 192.*.*.*

大鼻です。
http://homepage2.nifty.com/Mr_XRAY/Halbow/Notes/N014.html
ここにある
TWriter.Create(CopyPaste1.CopyData,1000);
の第二引数  1000  というのはどのような意味があるのでしょうか?

編集 削除
anone  2005-07-06 11:59:31  No: 16212  IP: 192.*.*.*

ヘルプを使って見てください。

編集 削除
Mr.XRAY  URL  2005-07-07 00:09:56  No: 16213  IP: 192.*.*.*

>の第二引数  1000  というのはどのような意味があるのでしょうか?

anoneさんがレスしていますが,意味はヘルプで調べるとして,取敢えず
動作させてみることも必要かと思います.動けば正義です.(^_^;)
難しいからと避けているわけにはいかない思いますよ.
プロジェクトファイルが私のサイトからダウンロードできます.
テストできます.

それから著作権は気にする必要はありません.利用は自由です.

編集 削除
大鼻  2005-07-07 08:25:55  No: 16214  IP: 192.*.*.*

Mr.XRAYさん。
>それから著作権は気にする必要はありません.利用は自由です.
とのうれしい書き込みを頂きありがとうございます。
大鼻です。
anoneさんのご指摘のようにコンポーネントをそのまま組み込み、Mr.XRAYさんのご指摘どうりサンプルを参考にして動かしてみました。
すんなり作動させることができ大変ありがたく感謝し感激いたしております。
低能な質問ですが、
TFiler.Createメソドをヘルプで検索すると下のような説明文でした。
>Stream パラメータで指定したストリームに BufSize で指定するサイズのバッファを関連付けます。
この”BufSize で指定するサイズのバッファを関連付けます。”の語文の意味がわからずにいます。BufSize 1000という領域を確保することなのでしょうか?
第二引数  1000  を  1  にしても作動するし、、、?

編集 削除
anone  2005-07-07 10:45:41  No: 16215  IP: 192.*.*.*

> この”BufSize で指定するサイズのバッファを関連付けます。”の語文の意味がわからずにいます。

TWriter が内部処理で使うバッファメモリのサイズを指定するわけです。
多ければ処理速度が向上しますがメモリを沢山使うことになります。

こんなところに疑問を抱くのもいいですが、それより全体の動作を理解するほうが
先ではないかと思うのですが・・・・

編集 削除
大鼻  2005-07-07 11:16:32  No: 16216  IP: 192.*.*.*

anoneさん。
ありがとうございます。
大鼻です。
>全体の動作を理解するほうが
>先ではないかと思うのですが・・・・
はい、そうですね。これから努力します。

何度もしつこいのですが、もう一度だけ教えてください。
第二引数の値ですが、どうのようにして導びき出せばいいのでしょうか?
単に実行速度を目安に決めればいいのでしょうか?

編集 削除
anone  2005-07-07 11:28:23  No: 16217  IP: 192.*.*.*

> 第二引数の値ですが、どうのようにして導びき出せばいいのでしょうか?

知りません。適当でいいのでは? ものすごく大きなサイズをバッファリングする
なら速度にも影響があるでしょうね。

編集 削除
ん?  2005-07-07 12:21:00  No: 16218  IP: 192.*.*.*

ゴミレスですが・・・

> こんなところに疑問を抱くのもいいですが、それより全体の動作を理解するほうが
> 先ではないかと思うのですが・・・・
自分は、別に後でも先でもいいと思います。
よくあるのが、「例として書いてある1000をそのまま使うだけ」で、どういう数値であるか理解しない人。知った後も、ずっと1000で使い続けるでしょう。
それに比べると、大変好ましいことです。

> 第二引数の値ですが、どうのようにして導びき出せばいいのでしょうか?
ちなみに、どれくらいのデータをコピペするのかはわかりませんが、結構大きな数値を入れもいいんじゃないかと思います。
大きいデータを扱うのであれば、バッファサイズは少なすぎてもパフォーマンスが落ちます。
1000(1K)はちょっと少ないので、50Kくらい使ってもいいでしょう。
状況にもよりますが、自分なら、500K〜1Mくらい使いそうですな。

編集 削除
大鼻  2005-07-07 13:25:45  No: 16219  IP: 192.*.*.*

anoneさん。ん?さん。ありがとうございます。
大鼻です。
ちなみにタスクマネージャーで確認したのですが、
クリップボードに送りたい平均的なデータ量をコピーした時メモリ使用量が5000Kほど増えました。
また、送るデータは動的配列をコピーしたものであるためメモリの許す限り大きなものになりす。
どれくらいのバッファサイズがいいでしょうか?

編集 削除
anone  2005-07-07 13:35:46  No: 16220  IP: 192.*.*.*

なにか処理速度に不満がありますか?

あるなら10Mから10までいろいろ試してみたらいいと思います。
不満が無ければべつに1kでも10kでもいいと思います。

編集 削除
大鼻  2005-07-07 13:46:02  No: 16221  IP: 192.*.*.*

anoneさん。
ありがとうございます。
大鼻です。
こちらで色々ためして設定します。
みなさん本当にありがとうございました。

編集 削除