2012年11月13日

Lazarusで設計時フォームが表示されなくなった。

探したけど簡単に見つからなかったので自分で書いておくことにした。ある日突然何が原因か自分でもわからないけど、作成中のプロジェクトでFormsダイアログのリストに入っているにもかかわらず選択したフォームが表示されなくなった。

なんでやねんとあちこち対処法を探し回ったが資料がない。なので色々とプロジェクトの中身をチェックしてみた。

*.lpiというプロジェクト用ファイルはXMLで書かれているようだ。それを見たら答えがあった。

ノードの中に「Units」というものがある。そこにProjectで使用している*.pasなどの一覧があるんだが、Formが表示されないユニットは

<Unit0>
<Filename Value="rt2.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="rt2"/>
</Unit0>
<Unit1>
<Filename Value="main.pas"/>
<IsPartOfProject Value="True"/>
<ComponentName Value="Form1"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="main"/>
</Unit1>
<Unit2>
<Filename Value="intervaldlg.pas"/>
<IsPartOfProject Value="True"/>
<HasResources Value="True"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="IntervalDlg"/>
</Unit2>


こんな感じで <ComponentName Value="intervaldlg"/>みたいにpasファイル上で指定してあるインスタンス名が欠落しているではないかw

ひとまず何故これが消えたのかは自分でもよくわからないのだが、lazarusでは設計時にもForm派生クラスのオブジェクト変数を使用していて、手書きでちょうど「implementation」直上辺りにある変数を修正してしまったりすると迷子になってリソース見つけられずに消してしまうのかなと予測。

まぁなんでもそうだがとりあえず修正できたのでよしとしようwww



posted by MCI_Error at 21:33| Comment(0) | lazarus
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: