Lazarusでテキストビューアを作ってみる Loogaroo(2)

Delphiのサンプルがネット上に残っている間は、結構そのまま動くので幸せになれます。
でも、Lazarusの方が、型の違いに厳しいらしくて、たまに悩みます。
■二重起動の禁止
■起動済みの画面を前に持ってくる
この2個はここ。
http://mrxray.on.coocan.jp/Halbow/Notes/N011.html

■画面にファイルをドラッグアンドドロップ
画面へのドラッグアンドドロップでファイルを受け取るのは
TApplicationPropertiesコンポーネントをフォームに落として
TForm.AllowDropFiles := True にして、こんな感じで。

procedure TMainForm.AppPropDropFiles(Sender: TObject;
const FileNames: array of String);
var
i: Integer;
begin
for i := Low(FileNames) to High(FileNames) do
OpenFile(FileNames[i]);
end;


フォルダやショートカットを落とした場合は、フォルダやショートカットファイルのパスがそのままわたってくるので、それなりにやることになると思います。ちなみにまだしてません。

上の OpenFile(FileNames[i]) の中で何かする予定です。

■起動してない時にアイコンにファイルをドラッグアンドドロップ
これはこれで。

procedure TMainForm.FormShow(Sender: TObject);
var
i: Integer;
begin
for i := 1 to Paramcount do OpenFile(ParamStr(i));
end;


***
で、
起動している時にアイコンにファイルをドラッグアンドドロップ
これが問題でした。Delphiの時にはできてたのにLazarusでは何が悪いのかわからない状態です。

メッセージ受信専用ウィンドウ
http://mrxray.on.coocan.jp/Halbow/Notes/N007.html
簡易アプリケーション間通信
http://www2.big.or.jp/~osamu/Delphi/tips.cgi?index=268
メッセージによるプロセス間通信
http://mrxray.on.coocan.jp/Halbow/Notes/N012.html

このへんをまねしたらできるはずなのに...

ということで後回しで。

続きます。
関連記事
スポンサーサイト