はじめて質問させていただきます。
最近Delphiを勉強し始めたばかりです。
今回試しに作ってみたプログラムをF9で実行して動作するのを確認した後、さらに内容を追加して再度実行しようとしたところ、実行ができなくなってしまいました。
実行ができなくなってしまったというよりも、F9で実行しても一瞬表示されたあと、直ぐに落ちてしまっているため表示されてないように見えるきがします。
仕方が無いので試しに書き加えた追加分を一度コメントアウトして再度実行しようとしても同じ現象が起きてしまいます。
初歩的な質問で申し訳ありませんが、宜しければ、原因と対処法をご教授お願いします。
具体的には、作成したプログラム(ソースコード)は、どのように記述していますか?
最初にチェックボックスをラジオボタンのように動作させるものを作成し、実行。ここまでは問題なく動作しました。
次にそのチェックに応じて、ラベルの数値が変化させようと、プログラムを追加記入したところ、上記の通り、一瞬で落ちてるらしい状態になってしまいました。
以下にそのソースコードを記述させていただきます。
コメントアウトしている8行目が実行できなくなる原因(?)の記述です。
他の部分はF9実行して問題なく動作した後から、F9実行で動作しなくなる(?)までの間、おそらく何も弄っていないため省略させていただきました。
//チェックボックスtb1_1の部分
procedure TForm1.tb1_1Click(Sender: TObject);
begin
if (tb1_1.Checked = True) and (tb1_2.Checked = True) then
begin
tb1_2.Checked := false
end;
//if tb1_1.Checked = True then Label1.Caption := (IntToStr(StrToInt(Label1.Caption)+1));
end;
//チェックボックスtb1_2の部分
procedure TForm1.tb1_2Click(Sender: TObject);
begin
if (tb1_1.Checked = True) and (tb1_2.Checked = True) then
begin
tb1_1.Checked := False;
tb1_2.Checked := True;
end;
end;
「一瞬で落ちて」いるようですので、ループに入っているわけではないでしょう。
実行は終了しているのでしょうか?
エラーも表示されないのなら、どこかで終了しているのでしょう。
わからない場合は、再度Projectを作成してみることですね。
提示されたソースコード自体には、とくにプログラムを終了させる要素は、なさそうです。
このプロジェクトでのみ、そのような現象が起こるのであれば、
>おそらく何も弄っていないため省略させていただきました。
この省略された部分が原因かもしれません。
ちなみに、実行プログラム自体をエクスプローラなどから起動した場合でも、
同じ現象ですか?
あと、OSやDelphiのバージョンは何ですか?
HOta様>
ご回答ありがとうございます。
実行すると編集中のForm1が一瞬表示されなくなり、1〜2秒程で編集中のForm1が表示されるという状態です。
一度Delphi自体を終了し、再度開いてみたりもしましたが無意味でした。
確かに再度Projectを作るのが、現状では一番手っ取り早い解決方法だとおもいますが、今後の勉強のために可能であれば原因を知っておきたい気もします。
igy様
再度ご回答ありがとうございます。
実行プログラム自体のエクスプローラーというのはProject1.exe等の実行ということでしょうか?
上記のものを誤って消してしまった後、同じ現象が発生した全く別のアプリケーションで試してみたところ、
EResNotFoundがモジュールnamae.exeの00055FCAで発生しました。
TForm1リソースが見つかりません。
と表示されました。
マシンのOSはWindows7、DelphiのバージョンはDelphi6 Personalです。
{$R *.dfm}
を間違って消したらでるらしい
「EResNotFound は,リソースが見つからなかったときに生成される例外クラスです。」
http://docwiki.embarcadero.com/VCL/ja/Classes.EResNotFound
けど様>
ご回答ありがとうございます。
ただ、確認してみたところ
implementation
{$R *.dfm}
という部分がソースコードにあるため、引用までいただいたのに申し訳ないのですが、消してしまったわけでは無いように思います。
原因はわかりませんが・・・
>同じ現象が発生した全く別のアプリケーションで試してみたところ、
複数のプロジェクトで発生しているのであれば、
それらのプロジェクトで、共通する部分(内容)など、ありますか?
たとえば、特定のコンポーネントを使用しているとか、
特定の処理を行っているとか。
igy様>
共通するコンポーネントや処理はあることにはありますが、本当に全くの初心者のため、恐らくそれが原因ではない気がします。
ラベルやボタンが原因とは思えないので…。
時々全く別の練習で作ったプログラムを一緒に開いてしまって、おかしなことになっていたのですが、そのようなことはしてはいけないらしい(?)のでもしかしてそれが原因なのでしょうか…。
基本的な質問ばかりで申し訳ありません。
FormCreateでなにしてる?
>同じ現象が発生した全く別のアプリケーションで試してみたところ、
これは再コンパイルしておきた?
現象が発生する前にコンパイルしておいたEXEでおきた?
新規フォームでは発生しない?
>時々全く別の練習で作ったプログラムを一緒に開いてしまって、
>おかしなことになっていたのですが、そのようなことはしてはいけない
>らしい(?)のでもしかしてそれが原因なのでしょうか…。
新規プロジェクトで、その現象が再現できるような手順があれば、
原因を調べることができそうですが、
再現できないのであれば、
問題のプロジェクトをどこかにアップロードすれば、
原因を調べることができるかもしれません。
こちらのパソコンの不調のため、ご回答をいただきながら返信が遅れてしまい申し訳ありません。
> KHE00221様
FormCreateでは何もしていないと思います。
また、発生はexeで起きているかどうかはわかりません。
新規フォームでは発生していません。
>igy様
再現手順もわからない上に、問題のファイルも紛失してしまいました。
ただ、大体が一度保存してDelphiを終了させた後、再度Delphiを起動して作業しているときに現象が起こっている気がします。
やはり原因は不明なのですが、パソコンの不調でそのプログラムを紛失してしまったのと、保存方法に原因がある気がしてきました。
あまりにも初歩的な質問ばかりを続けるのも気がひけるため、解決とさせていただきます。
変な質問を投稿してしまい、申し訳ありませんでした。
次回質問させていただける時は、もう少しDelphiに詳しくなれたらと思います…。
ツイート | ![]() |