日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
2024年12月
2 3 4 5 6 7 1
9 10 11 12 13 14 8
16 17 18 19 20 21 15
23 24 25 26 27 28 22
30 31 29

アーカイブ

2005年06月 のアーカイブ

Delphi/ヘルプ


古いソフトを MOから発掘して修正。
8年ぶりに、ヘルプを修正しようと編集したら、コンパイルするとエラー。
いったい、なにが。。。。  

ということで、
HCRTF.EXEが4.01 しらべると 4.03が新しい物らしい

ということで 忘れないようにメモ


ヘルプコンパイラ HCRTF.EXE
Hotspot Editor も同梱されているみたい。

でさっそくまた コンパイル
今度はうまくいきました。
うーん。。。 編集したWordのバージョンのせいかな?


ヘルプ作りにくいしなぁ
 コンパイル面倒だし・・・
  単なるHTMLでいいかもぉ ・・・
   って近頃はそうしている・・・


Microsoft HTML Help 1.4 SDK
HTML Help Downloads

Microsoft.NETSDKv1.1\Samples\Tutorials\deployment\1_helloworld
を試してみる
このサイト半角の¥がきえるのでてきとーによんでください

まず、環境変数PATHに
    C:¥WINDOWS¥Microsoft.NET¥Framework¥v1.1.4322
をいれてあるか確認。
build.batを実行
Hello.exe ができた。 サイズ 3.00 KB (3,072 バイト)
早速実行。
Hello World using C#!

んで じゃぁ 、Delphiいってみよう
Hello.dpr を開く。 もちろん .netね。
オプションでデバッグ関係オフ。
さっそく コンパイルいってみよう
18.5 KB (18,944 バイト)
ぎゃあ でかくなった

くそ、 これでどうだぁ
dccil Hello.dpr
dccil -CC -$D- -$C- -$I- -$Y-  Hello.dpr
やっぱだめ。 大きい
コマンドラインから生成なんて、turboPascalと QuickC以来12年ぶりだ・・・・・


Hello.dpr の内容
program Hello;

{$APPTYPE CONSOLE}
begin
  Console.WriteLine('Hello World using Delphi for .Net!');
end.

Delphi/マウスを移動しよう

mouse_evenで マウスを 移動したり、クリックしたりできる。
マウスが移動するので、どうしても言うこと聞かないソフトを
自動でクリックさせるのに便利。
応用すると、マウス移動→クリック→入力などを ユーザーが操作したように
再現させることができる。

function Mouse_PositionTomouse_event_Point(APoint : TPoint) : TPoint;
  var
    R :TRect;
begin
  if Not Windows.GetWindowRect(GetDesktopWindow,R) then
   Result := Point(0,0)
   else
  begin
    Result.X := Trunc(($FFFF)*(APoint.X/(R.Right-R.Left)));
    Result.Y := Trunc(($FFFF)*(APoint.Y/(R.Bottom-R.Top)));
  end;
end;

これは、独自関数。MOUSEEVENTF_ABSOLUTEのとき座標系が違うので変換。 
迷惑な仕様だ・・・・
名前が長すぎるのでシンプルにしたいところ・・・・
       ClickPt := Mouse_PositionTomouse_event_Point(Point(
         100    , 200     ));
 
操作例
    mouse_event(MOUSEEVENTF_MOVE+MOUSEEVENTF_ABSOLUTE
          ,ClickPt.X,ClickPt.Y,0,0);

     mouse_event(MOUSEEVENTF_LEFTDOWN,ClickPt.X,ClickPt.Y,0,0);
     mouse_event(MOUSEEVENTF_LEFTUP  ,ClickPt.X,ClickPt.Y,0,0);

 

ついでに文字出力
  procedure SendString(Text : String);
    var
      A_WMChar : TWMChar;
      i : integer;
  begin
    for i := 1 to Length(Text) do
    begin
      Application.ProcessMessages;
      A_WMChar.CharCode := Ord(Text[i]);
      A_WMChar.KeyData := 1;
      SendMessage(AHandle,WM_CHAR,A_WMChar.CharCode,A_WMChar.KeyData) ;
    end;
  end;


この方法は、ユーザーの操作で影響を受けるので
普通に、アプリにイベントを送りには、別のやり方が有効。

Delphiに使えるドキュメント生成ツール


PasDoc SJIS対応版PasDoc GUI
出力:[ HTML, HtmlHelp, LaTeX , latex2rtf ]
説明書SupportedTagsWritingDocumentation
構文
なにもしなくても勝手にひろってくれるみたい
コメント内に
修正:R1 (0.8.8j)の場合
@タグ (内容)
といった形で動作を指定できるみたいです。
:R2 (0.8.8.3j) 2005-06-14の場合
@タグ  内容
()をつけりるとエラーおこすみたい
といった形で動作を指定できるみたいです。

コメントマーカーというのを決めると、コメント処理の動作を決めれるみたい
デフォルトではついていないので(Javadocスタイル?)、公式サイトでは、:がついていたりする。
今回は 普通のコメントと区別するために ! を使おうと思います
{! }みたいな感じです
()をいれていなかったので、warningがでて1時間苦戦しました。
{! @abstract (
このユニットは・・・
)
  @created (2005-05-02)
 }
unit taRvJpMemo;
いれたい変数や関数の直前に{! 説明}を書きます。
操作は簡単。 出力高速。  
出力結果は、きれいだけど
・・・・・ 図がグラフになっていない

Doxygen + Pas2Dox
出力:[ RTF(MS-Word), PDF, compressed HTML, PostScript, Unix man ]
対応言語
Delphi, C++, C, Java, Objective-C , PHP
, C#,  D , IDL (Corba and Microsoft flavors)
ダウンロードは、Setupを選ぶ。
フォルダ:日本語フォルダ不可・・・
使い方
http://www.hexe19.net/doxygen/quickstart-delphi.html
http://www.fides.dti.ne.jp/~oka-t/doxygen.html
http://members.at.infoseek.co.jp/sakura_editor/comment-rule.html

サンプルを見る限りきれい。みやすい。
が・・・・操作が面倒
っていうか 日本語フォルダをつかえないので選択肢から除外。
・DelphiCodeToDoc
 http://dephicodetodoc.sourceforge.net/

考察
1)どちらにするか・・・・かなり悩む・・・

  1. C#で書き出すことを考えると・・・doxygenにしたほうがいいけど
    C#のユニット作ってないのでまぁいいとしよう。CなんかMOに眠ったままだし。
  2. と思っていたけど
  3. doxygenを試すと日本語フォルダを認識しないので使えない。 ソースを英語フォルダにコピーして実行してみたが、 上のサイトのような物は表示されなかった。 ファイル名がでる程度・・・・
    設定ファイルを見る限り
    TStringListのValueを使えば簡単に変更できるので設定ツールを作る手もあるがばかばかしくて作る気はおきない。 どこか探せばおちているだろうし
2)ということで
PasDoc にしたんだけど、 Type a= (v);
のときに @valueをしてみたが出力できない
vの前にコメントを貼ればできるが。。。
後方にコメントして、説明にできるタグはないのかな・・・・と思う

こちらはこちらで 不具合が。。。
でも、 お手軽
編集: R2 (0.8.8.3j) 2005-06-14をいれるとできました。
  でも、今度はクラス階層が変。継承しているのに同じ段になった・・・)

どちらにしても
自分用の作って
テンプレートをCTRL+J に登録して使うといい

() 構文がきかなくなったのが困りものだが・・・

テンプレート集
?

?

?



PR

[PR]