4

案内をお願いしてもよろしいですか?

Development machine – Windows 7  64bit
IDE – Delphi 7 pro (with 7.1 update)
Target machine for install – Windows XP (SP3) – NB this is the Win 7 Virtual Machine

テストアプリにすぎない小さなアプリケーションを作成しました。グリッド、MS accdb ファイルに接続された TADOConnection、およびいくつかの TADOTables。Inno Setup を使用して、インストーラーも作成しました。とてもシンプルなアプリです。

XP 仮想マシンに「アプリケーション」をインストールすると、すべてが計画どおりに進みます。つまり、エラー メッセージは表示されず、インストーラは完了します。ただし、アプリケーションは起動しません。同じ XP VM に D7 をインストールしましたが、奇妙なことに、IDE が実行されていれば、アプリケーションは問題なく起動します。IDE を閉じると、アプリケーションが再び起動しなくなります。

表示されるのは 1 秒か 2 秒の砂時計だけで、それだけです...エラー メッセージも、この恐ろしいアプリケーションに関する情報を送信するかどうかを尋ねる恐ろしい MS ダイアログもありません。実際、フィードバックはまったくありません。

注 - Win 7 マシン上で IDE から実行する場合でも、IDE の外部で実行する場合でも、アプリケーションは正常に実行されます。

私は明らかに非常に明白な何かを見逃していますが、私は迷っています。私も試してみました…。

program Project1;
uses
  Dialogs,
  Forms,
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}
begin
  Application.Initialize;
  ShowMessage('Starting');
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

しかし、ShowMessage ダイアログが表示されません。

多くの「Hello World」チュートリアルを読みました。寛大な SO 貢献者から多くの知識を集めました (ありがとう)。しかし、インストーラーに含めるためにアプリケーションを「準備」するために何をすべきかを教えてくれる別のチュートリアルが必要です。Project Options の Build with runtime packages のチェックを外して Project > Project Build を実行すれば、IDE の外でアプリケーションを実行するために必要なすべてのファイルをビルドできると思いました。

ジグソーパズルの最後のピースを誰か教えてもらえますか?

ちなみに、IDE の外部で実行可能ファイルをデバッグする方法はありますか? おそらく、アプリケーションの起動時にログ ファイルを生成する Delphi 内のいくつかのスイッチ…または試行する.

御時間ありがとうございます ?

よろしく、ジョン。

編集- ファイルは W7 マシンの IDE の外部で実行されることを前に述べました。私はこれを間違えました... D7も起動して実行しない限り実行されません。また、このファイルを含む元のフォルダーのコピーを作成し、プロジェクト オプション スイッチをいじり始めました。突然、新しいファイルのサイズが 2 倍になり、正常に実行されます。問題...元のファイル/プロジェクトで変更したものを複製できず、自分が行ったことが原因/修正であることを確認できません。

編集 2 - OK - 問題は間違いなくファイル サイズの違いに関係しています。XP ボリュームにフォルダを作成し、Win 7 Delphi インストールの Output ディレクトリからすべての BPL のコピーをドロップしました。そこに私のexe(IDEの外で実行されないファイル)と私のaccdbファイルもドロップしました。ダブルクリックして... Hey Presto - 実行します。グリッドには私のサンプル データが表示されます ... 美しいです。

これが問題です... プロジェクト>オプション>パッケージ>ランタイムパッケージでビルドはチェックされていません。これは私に大きなexeファイルを構築するはずです-(それは正しいです)が、BPLを必要とする比較的小さなexeを構築します!!!!

さらにテストを行います...

4

1 に答える 1

0

おそらく、tconnection が ide で接続されているはずです。

これにより、IDE 内の実際のデータで物事がどのように見えるかを確認できますが、アプリケーションを実行すると、すべてがまだ正しく設定されていない可能性がある最初に接続しようとします。

考えられる解決策の 1 つ: 接続コンポーネントを切断したままにして、後の段階で、たとえば「接続」ボタンを使用して接続します。

少なくとも、そのような例外を適切に処理する方が簡単です。

于 2012-08-06T00:03:21.390 に答える