header image

Categories

FEED

  • goo RSSリーダーへ追加
  • Livedoorリーダーへ追加
  • はてなRSSへ追加
  • Googleへ追加
  • myyahooへ追加
  • feedpathへ追加
  • NewsGator Onlineへ追加
  • Bloglinesへ追加

携帯対応

QRコード

RING

人気ブログランキング



2008/01/12 20:53:09 Delphi none Comments
add Hatena Bookmark Tags:

IHTMLElementCollectionから、特定のFormオブジェクトを取得するには、item関数を利用するのだが、この際、実は引数の渡し方は複数ある。

Form := Forms.item('form1', 0) as IHTMLFormElement;

上記は、要素名がauthと呼ばれる要素のうち一番最初のformを取得する。この場合は第一引数に要素名、第二引数にindex値を指定する。

Form := Forms.item(1, 1) as IHTMLFormElement;

上記はformの中で、二番目のformを取得する。この場合は、第一引数と第二引数に共に、IHTMLElementCollectionのindex値を指定する。

参考
http://msdn2.microsoft.com/en-us/library/aa703930.aspx

2007/12/02 04:44:57 Delphi none Comments
add Hatena Bookmark Tags: ,

Delphiの話。
色々あって起動中のブラウザで表示中の画面を横取りして、formの項目をfillinしてPOSTしないといけない要件がある。まずはWindowハンドルを元にして、起動中のIEのIWebBrowser2インタフェイスを取得する方法。

function GetIEFromHWND(WHandle: HWND; var IE: IWebbrowser2): HRESULT;
var
  hInst: HWND;
  lRes: Cardinal;
  Msg: Integer;
  pDoc: IHTMLDocument2;
  ObjectFromLresult: TObjectFromLresult;
begin
  hInst := LoadLibrary('Oleacc.dll');
  @ObjectFromLresult := GetProcAddress(hInst, 'ObjectFromLresult');
  if @ObjectFromLresult <> nil then
  begin
    try
      Msg := RegisterWindowMessage('WM_HTML_GETOBJECT');
      SendMessageTimeOut(WHandle, Msg, 0, 0, SMTO_ABORTIFHUNG, 1000, lRes);
      Result := ObjectFromLresult(lRes, IHTMLDocument2, 0, pDoc);
      if Result = S_OK then
        (pDoc.parentWindow as IServiceprovider).QueryService(IWebbrowserApp,
          IWebbrowser2, IE);
    finally
      FreeLibrary(hInst);
    end;
  end;
end;

これでIWebBrowser2のインタフェイスが取得できれば、文書の操作は簡単。

doc := IE.Document as IHtmlDocument2;
ShowMessage(doc.body.innerHTML);

ブラウザからIHtmlDocument2インタフェイスを取得し、それを通じてhtmlの本体にアクセスできる。

2007/11/25 23:49:41 Delphi none Comments
add Hatena Bookmark Tags: ,

DCL

DelphiComponentListerは、あまり人の役に立たない簡単なツール。
Delphi製のアプリケーション(C++Builderもいけると思う)で利用しているコンポーネントの一覧を抽出してくれるツールである。
色々な野良コンポーネントを導入していると、ビルドに必要か必要でないのかの判断が付かなくなってしまうので、利用しているコンポーネントの一覧作成が必要だったのが作成動機。作成時間は60分。

ローカルにおいておくとなくすのでこちらにアップしておく。

2007/11/06 07:21:05 Delphi none Comments
add Hatena Bookmark Tags: ,

単なるメモ。とあるソフトがイベントログを監視しているらしいのでその対応。

var
  Eventlog  : TEventLogger;
  str : string;
  eventType : Integer;
  category : Integer;
  id : Integer;
  source : string;
begin
  source := 'Security';
  str := 'セキュリティのカテゴリに監査成功を突っ込む';
  eventType := Windows.EVENTLOG_AUDIT_SUCCESS;
  category :=  0;
  id := 538;

  Eventlog  :=  TEventLogger.Create(source);
  try
    EventLog.LogMessage(str,eventType, category, id);
  finally
    Eventlog.Free;
  end;
end;

なお,usesにSvcMgrを追加しておく必要がある。

2005/04/13 12:54:49 Delphi none Comments
add Hatena Bookmark Tags:

Delphiの良いところはコンポーネントが豊富なこと、ってことで色々見つけては試しているが、今日見つけたこれはなかなか良い。

ぷれぷれ電光掲示板

その名の通り文字列を電光掲示板方式で表示するコンポーネント。

2005/02/22 13:43:49 Delphi none Comments
add Hatena Bookmark Tags:

ベータテストが開始してしばらくたつが、DB周りのエラー報告はなかなか出てこない。Nさんからは初期化して登録したらエラーが出るって連絡あるけど、ほかでは出ていないようだ。気持ち悪い。

でこのまま一般公開するとマズイかと思ってさらってみたら、理由がわかった。

原因はテーブル生成時のBDEの設定の問題で、Paradoxのテーブルサイズの制限は

ブロックサイズ*65535

なのだそうだ。そういえば昔はまったかも。

ということでブロックサイズはデフォルトでは2048なので

2048*65535/1024/1024=約127M

こりゃだめだ。

ということで早急に対策モジュールを作成。

自宅のDell Inspironでテスト。最近XPのSP2を適用してからマシンが突然死するようになって夜間放置すると朝にはきっちりw電源が落ちている。

ネットで検索したらノートPCの下に足をつけて通気性を向上させると解決するかも、とのことなので実験。

朝起きたらとりあえず正常に動作していた。

なんだかなぁ。

2005/02/15 13:46:28 Delphi none Comments
add Hatena Bookmark Tags:

DelphiでMDIフォームのWindowメニューが消える

ので悩んでいたが、WindowMenu に指定するMenuItem に分割線を入れないようすればいいらしい。

Delphi5もいい加減バージョンアップすっかな。

2004/10/08 22:58:34 Delphi none Comments
add Hatena Bookmark Tags:

最近またDelphiを触っている。

今の会社に転職する前はパッケージソフトの構築をしていてDelphiを良く触っていたんだけど、Web系のシステム構築が多くなっからぜんぜん触っていなかったので約5年ぶりくらい。久々に昔のソースコード見てみたら、コメントに1998年とか1999年とか書いてある。この世界で考えたら浦島太郎なコードだよw。んで内容を見るとあまりにレベルが低い。オブジェクト指向言語を何故名前のCみたいに書いてたんだ?>俺

自分では気づかないうちに成長してるみたい。

そういうもんかにぃ。

今日のキーワード

SQLite

 →Delphiでも使えるオプソなDB

GEXPERTS

 →DelphiのIDE用の便利ツール

2004/09/02 10:44:15 Delphi none Comments
add Hatena Bookmark Tags:

昔自分が作ったソフトの後継版を作ろうかと思った。

Delphiなんか久々に触るからもう忘れてそうな悪寒。

でもPerlより全然好き。コンパイルは爆速だし。

Delphiはどんどんバージョンアップされているみたいだけど、Delphi4とか5でそんなに不自由なさそうだな。

 


ads

Ryuzeeのお気に入り