delphi

SHDocVw で表示中のページをファイルに保存

せめて月イチくらいでは何かかきたいので書く。んで,ブラウザコンポーネント(SHDocVw)で,表示中のページをファイルに保存する方法。ただし画像等のリソースファイルの保存(Web ページ、完全)や Web アーカイブとしての保存はできない。「Web ページ、H…

Delphi 6 で XP Style に対応する

Delphi 7 以降を買えという気もしますが,未だに Delphi 6 Personal 版を愛用している人もいるかと。俗に manifest 書けばできるよ(⇒ Windows XP の Luna スタイルに対応しよう)といわれていますが,TPageControl とか対応してないコントロールがあったり…

TWebBrowser を実行時に生成する

使ってる人には常識的な話でしょうけど。TWebBrowser は COM コンポーネント側に Parent という(IDispatch 型の)プロパティを持っています。で,これが VCL の Parent プロパティを隠してしまうので,実行時生成しようとすると困ります。 FWebBrowser := T…

Delphi で暗号化するなら CAPICOM を使うと楽

Delphi に限った話でもないですが。win32 で DES 等の暗号化をしようと思った場合,Windows に標準で付属している Crypto API を使うと,外部ライブラリ等を自力でコンパイルする必要がありません。この Crypto API の使い方はトラスト・ソフトウェア・シス…

TDateTime のナゾ

ほとんどの VCL オブジェクト は TDateTime 型を使って日付値と時刻値を示します。TDateTime 値の整数部は西暦 1899 年 12 月 30 日からの経過日数を示します。小数部はその日の経過時間(24 時間制)です。 んーなぜ 1899/12/30 からなんでしょうね。でもそ…

trac のレポジトリブラウザで Delphi のコードを syntax highlighting

trac のレポジトリブラウザでソースコードに色付けをするには,下記の2つのコンポーネントのうちいずれかをインストールする必要があります。 SilverCity GNU Enscript ただ,後者は別プロセスを立ち上げるので重そう。前者を使うことにします。SilverCity …

クロージャの持つ関数ポインタを得るには @ 演算子を使う

type THogehoge = class public procedure Dummy; end; var cl: procedure of object; fp: procedure; begin fp := @cl; // 関数ポインタだけ取り出し if @cl = @THogehoge.Dummy then // クロージャの関数ポインタと THogehoge の Dummy 関数が等しかったら…

IE コンポーネントにおけるイベントの発生順序

一般化しづらいのですがあえて書くと,Navigate(URL) 後の基本的な流れは,こうです。 BeforeNavigate2 イベント発生 NavigateComplete2 イベント発生 DocumentComplete イベント発生 ProgressChange (Progress = 0, ProgressMax = 0) イベント発生(※) 2〜…

TWebBrowser での POST

きちんと確かめてなかったんでハマりました。 The post data specified by PostData is passed as a SAFEARRAY Data Type structure. The VARIANT should be of type VT_ARRAY and point to a SAFEARRAY Data Type. The SAFEARRAY Data Type should be of el…

TWebBrowser コンポーネントを使う

今更〜〜〜ですが,必要にせまられて作ってたら忘れそうなのでメモメモ。Delphi で IE コンポーネントを使うなら下記のサイトがまとまってます。 http://griffy.pekori.to/soft/technologies.html ま,TWebBrowser とか IWebBrowser2 とかでググると今でも結…