常駐アプリの作り方

解決


印刷屋  2008-04-29 07:54:04  No: 30594

データベースを定期的にバックアップするアプリを作りたいのですが、なかなかうまくいかないので教えてください。

・起動はスタートアップにショートカットを置いて起動する。
・デフォルトでフォームは存在しないか不可視で作っておく。
・タスクトレイにフォームを呼び出す記述を置く。
というものを作りたいのです。

タスクトレイにアイコンを置く方法は分かったのですが、フォームのCreateに依存していて、生成しないとタスクトレイに表示できません。
できればデータモジュールのような不可視状態をデフォルトにしておきたいのです。
普通のプロジェクトでいいのか、サービスアプリで作った方がいいのかも分からないので、設計の方向性だけでも教えて貰えないでしょうか。
おねがいします。


Fusa  2008-04-29 20:12:47  No: 30595

こんな感じでしょうか。

◆  プロジェクトソースを編集して
    Application.Initialize; の後に
    Application.ShowMainForm := False; を挿入する

プロジェクトソースは次のようになります。
begin
  Application.Initialize;
  Application.ShowMainForm := False;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

◆  メインフォーム(Form1)の Visible が False になっていることを
    確認しておく

これで、TrayIconを配置してみてください。

タスクトレイからFormを呼び出すことが必要な場合は
Form2を作成して、開くと、コードが楽だと思いますよ


印刷屋  2008-05-04 06:55:20  No: 30596

ありがとうございます。
起動についてはうまくいきました。
ただ、フォームの終了でアプリも終了するので、この解決方法を探していたんですが、わからなかったのでもう少し教えてください。
メインフォームの終了≠アプリの終了にするにはどうすればいいのでしょうか?


みんみん  2008-05-04 08:09:36  No: 30597

Fusaさんのおっしゃっているように、
メインフォーム(Form1)は不可視の状態のままにしておいて、
設計時に作成しておいたサブフォーム(Form2)を表示する方法はいかがですか?

var
  frm: TForm2;
begin
  frm :=TForm2.Create(Self);
  try
    frm.Show;
  finally
    frm.Release;
  end;
end;


印刷屋  2008-05-04 20:20:21  No: 30598

どうもデータモジュールで起動することにこだわっていたのが悪かったみたいです。
(;´д`)
フォーム2個を使うことで対応できるようになりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加