Create内での、ListViewの読み込み

解決


ぺろ  2008-11-26 23:52:39  No: 32717

やりたいのは、INIファイル内に保存したListView1のデータ(Captionとチェックのオンオフ)を、読み込ませたいんですが・・・。

FormのOnCreateだと、「まだ、ListView1は作ってないから?」と怒られる様なのですが、どうしたらいいでしょうか?

最初は、INIファイル関係のエラーだと思ったのですが、、、
単純に
procedure TForm1.FormCreate(Sender: TObject);
begin
  ListView1.Items[0].Caption := 'a';
//ReadIni();
end;

でも、怒られるので困っています。

INIファイルの読み込みを使えば、ListView1のデータを読み込めると思っていたのですが、この方法ではダメなんでしょうか?
怒られない方法や、代替えの方法はありますか?


igy  2008-11-27 01:47:25  No: 32718

>「まだ、ListView1は作ってないから?」と怒られる様なのですが、

正確には、エラーメッセージには、どのように書いているのですか?


ぺろ  2008-11-27 02:21:16  No: 32719

返信ありがとー。

Access violation at address 04545D8 in modeule 'ソフト名' Read of address

と、私のような素人だと、何らかのアクセス違反、かなー?と。

で、考えているうちに、すいません、自己解決しました。
あー、それまで2時間くらい何でだろう?って考えたんですが、ぴんと来ませんでした。

問題は、ListViewのデフォルトのデータはあらかじめリストビューで、入れておりました。
OnCreateには、このデータも読み込まれているだろうと、思っていました。

つまり、
起動  →  ListView(データ付き)  →  OnCreate(Iniファイル読み込み)

だと思っていたのですが、
起動  →  ListView  →  OnCreate(INIファイル読み込み)  →  ListViewのデータの読み込み

のようでした。
前者と思っていたので、あると思っていたけど、実際にはないところに、ねじ込もうとしたので、エラーになった訳です。

なので、あらかじめOnCreate内で
ListView2.Items.Add;
で、デフォルトを追加すれば、問題ないようです。ーー;

見て頂いたり、考えて頂いた方、本当にありがとうございました。


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

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






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