[BlueLeaf1336]> DOWNLOAD> DropSeries>

ドロップしたファイルからWEBページ用のリンクを作成 DropHref

historyTOP

2008/02/06:作成

ダウンロードTOP

最新版:20080207_DropHref.zip(305,473bytes) ※ソースコードと実行ファイルです。

このプログラムを使うと、クリップボードにどれだけ大事なものをコピーしていても消えます。

能書きTOP

このサイトは 2002/11/02 からずっとHTMLをテキストエディタで書いてるんですが、何が邪魔くさいって、とにかく、参考にしたサイトへのリンク、何かをダウンロードできるようにするためのタグ、キャプチャした画像を表示するためのタグです。

このうち、「参考にしたサイトへのリンク」については、*HrefBuilder というのを作ったことで、それなりに快適に過ごしてるんですが、「ダウンロード用」と「画像用」についてはずっと邪魔くさいことを解決することを邪魔くさがってほったらかしていました。

「画像用」については、.png 形式を使うように決めたことで、Delphi 標準では読めないので断念。「ダウンロード用」は単純に面倒だから放置、という状況でした。

ところで、しばらく前に GDI+ を Delphi でできるとかいうユニットをダウンロードしました。今オフラインなのでサイトがどうなってるのかわからないのですが、ダウンロードしたユニットやその他に書いてある URL をかき集めてみると

こんなサイトが関係しているようです。で、これを使うと .png も読めるわけで。実際は、表示は不要で、img タグのための width / height が取れるだけで十分なんですが、それでも、この2つが取れないと楽にならないわけで。

そんなこんなで、img タグに対応するついでに、圧縮ファイルをダウンロードするための href リンクもやっちまおうと。

できることTOP

「能書き」こそ「できること」を書くべき場所ですが、長くなったので分けます。

このプログラムは、設定内容を .ini ファイルに保持する画面なしのコンソールアプリケーションです。にもかかわらず UPX なしで 400KB を超えるのが不思議なんですが。

で、.ini ファイルのない状態で DropHref.exe を立ち上げると、.ini ファイルを作って何もせずに終了します。そのときにできる .ini の内容はこんな感じです。

[href]
Extention=.zip;.lzh;
Template=<p><a target="download" href="#DIR1#/#NAME#">#NAME#(#SIZE#bytes)</a>
[img]
Extention=.png;.jpg;.gif;
Template=<p>#CRLF#<br><img src="#DIR1#/#NAME#" width=#WIDTH# height=#HEIGHT#>
[help]
機能=ドロップしたファイルの情報を書式にしたがってクリップボードにコピー
[tag_help]
#NAME#=ファイル名
#SIZE#=ファイルのサイズ(byte)
#WIDTH#=画像の幅
#HEIGHT#=画像の高さ
#DIR1#=ひとつ上のフォルダ名
#DIR2#=ふたつ上のフォルダ名
#CRLF#=改行

まず、

[href]
Extention=.zip;.lzh;
Template=<p><a target="download" href="#DIR1#/#NAME#">#NAME#(#SIZE#bytes)</a>

ですが、.zip と .lzh がアイコンにドロップされたらどうするかを書いています。ためしに、適当に .zip ファイルをふたつドロップしてみると、クリップボードにこんな文字列がコピーされます。

<p><a target="download" href="2008_0002/20080123DropBackup.zip">20080123DropBackup.zip(25,268bytes)</a>
<p><a target="download" href="2008_0002/20080207_DropHref.zip">20080207_DropHref.zip(305,473bytes)</a>

そういうことです。Delphi に Format 関数ってあるんですが、それをファイルの情報に対してやるような感じです。よく言えば。

次に、

[img]
Extention=.png;.jpg;.gif;
Template=<p>#CRLF#<br><img src="#DIR1#/#NAME#" width=#WIDTH# height=#HEIGHT#>

は、画像がドロップされたときにどうするかです。画像の場合は高さや幅があるのでそれなりにやります。.png ファイルを何個かドロップしたときのクリップボードの中身はこんなのです。

<p>
<br><img src="2008_0002/capture_24012008_004910.png" width=376 height=340>
<p>
<br><img src="2008_0002/capture_24012008_004917.png" width=376 height=340>
<p>
<br><img src="2008_0002/capture_24012008_004901.png" width=376 height=340>

コンピュータってすごいなぁと思う瞬間です。今までは、ダウンロード用のファイルなら、わざわざ右クリックでファイルのプロパティを表示して、ファイルサイズをコピーしてたし、画像ならエクスプローラで画像を選んでみてツールチップやステータスバーに表示される画像サイズを写してました。これがまったくいらない。うれしすぎます。

で、このサイトでは画像の用途が主にプログラムのスクリーンショットなので、ちょっとした説明を書くことが多いので、改行も書式に含められるようにしています。

途中から、説明じゃなくなりましたがそういうことです。まれに見る使えそうなプログラムができたように思います。

補足TOP

多分そうなることやわかっていることを思いついた順に書きます。

EOFTOP