1.31 3:30 【クリップボード】 DelStyle_FKEYっていうFKEYを作った。テキストをコピーした時にスタイル情報を消してコピーしたテキストの情報だけにしてくれるというもの。うちはPostinoというメーラーを使っているのだけどスタイル付きのテキストをペーストするとメールの文章がスタイル付きになってしまって(実際に送られるメールはプレーンテキストなのだけど)どうにも見づらいのでペーストする前にスタイル情報を破棄してやればいいんじゃないかと考えたのだ。 で、ほとんど考える間もなく完成して動作確認もしたのだが、わざわざ1つのソフトとしてリリースするほどのものでもないのでソース公開して「必要な人は自分でコンパイルしてください」ということにしてしまおう(笑)。例によってメインとなるルーチンのみ。FKEYだからmainからこの関数を呼んでやるようにするだけだけど。
要はテキスト情報だけを一度メモリに読み込んでクリップボードの中身を消し、読み込んでおいたテキスト情報をクリップボードに書き出すというだけ。読み込むためのメモリが確保できなかった場合にはテンポラリメモリを使用するなどするという改良の余地は残されているがまあこんなもんかな。あるいはメモリに読み込まずにクリップボードの内容を直接編集するという手もあるのかも知れないが方法がわからないのでこんなもので。 クリップボードになにかを入れる場合に忘れやすいのが「ZeroScrap」。これを呼んでクリップボードの内容を破棄してやらないとその後のPutScrapでうまくデータがコピーできない。同じタイプのものが入っていなければ一応は問題ないが、普通は先に破棄するべきだろう。 で、今日のToolboxはクリップボード関連で主に使う3つのルーチンを解説。「ZeroScrap、GetScrap、PutScrap」の3つ。
GetScrapではハンドルを指定、PutScrapではポインタを指定というのも間違いやすいかも知れない。データを取り出す場合には再配置の可能なハンドルに読み込み、書き込む時には扱いが簡単なポインタを使うということだと思う。 はじめて作ったのであんまり見やすくないかも知れないけど、そのあたりについては今後の課題ということで(笑)。 Navigation Servicesのことを書こうかと思ったけど長くなったのでこんなもので。次回はおそらく例のパズルの結果発表+解説(?)かな。 |
← to January 30, 1999 ↑ to January index → to February 1, 1999 |