ListBox.Clear しても空にならないのはなぜ?


オン赤  2002-08-28 20:46:04  No: 1385

Listbox.Clear あるいは Listbox.items.clear を実行しても全く空になりません。なぜなのでしょうか?Delphi 6, WindowXP です。


にしの  2002-08-28 21:00:06  No: 1386

それは、最小の構成でのことでしょうか。
Delphi5で、ListBox1,Button1,Button2を貼り付け、

下のようなイベントを試しましたがクリアされます。
BeginUpdateしてEndUpdateしていないとか、ほかの理由は考えられませんか?

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListBox1.Clear;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ListBox1.Items.Clear;
end;


オン赤  2002-09-01 23:27:53  No: 1387

ひょっとして、アイドリングをしているせいでしょうか。
procedure TForm1.FormCreate(Sender:TObject); 
begin
  Application.OnIdle:= MyIdleHandler;
end;
として、このMyIdleHandler の手続きの中で、表示中のテキストの数字に色を付けたり、フォントを変えたりしています。
リストボックスを空っぽにできないというへんてこな現象はこのせいでしょうか?弱りました。


にしの  2002-09-02 03:47:54  No: 1388

そうかもしれません。
例えば、
Application.OnIdle:= MyIdleHandler;
をコメントアウトしても、ListBoxはクリアされませんか?

OnIdleイベントでどういう処理をしているかがわからないので、こちらでは再現しませんでした。
# OnIdleを使用してもクリアされています


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








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