Probleme mit Listbox

MaxMara

Mitglied
Hallo!
Ich hab ein kleines Problem mit einer Listbox. Per Doppelklick will ich Einträge daraus entfernen. Wenn man auf eine leere Stelle doppelklickt kommt eine "Listindex out of bounds" Exception.
Bitte um Hilfe!
Hier mein Code:
Code:
procedure TForm3.ListBoxDblClick(Sender: TObject);
begin
  if ListBox.Items.Count > 0 then
  begin
    ListBox.Items.Delete(ListBox.ItemIndex);
    if ListBox.Items.Count = 0 then
    begin
      ApplyButton.Enabled := FALSE;
      FourCCCodec.ItemIndex := -1;
      FourCCDesc.ItemIndex := -1;
    end;
  end;
end;
 
Ich fürchte, da hast du ein bisschen zu wenig Code gepostet. Ein Nachbau mit einer Listbox hat bei mir problemlos funktioniert. Was mir allerdings aufgefallen ist:
Bei dir wird der Doppelklick auf einen Listboxeintrag ausgewertet. Hast du evtl. auch eine Methode für einen einfachen Mausklick? Falls ja: Wie unterscheidest du zwischen einem einfachen Mausklick und einem Doppelklick (denn das wird nicht von den Komponenten übernommen)? Wird evtl. in einer ListBoxClick() die Liste umsortiert oder verändert, so dass der nachfolgende Doppelklick durcheinander kommt?
 
Das mit dem normalen OnClick war ein super Hinweis.
Ich hab den Fehler beim Doubleclick abgefangen mit:
Code:
  pt := Mouse.CursorPos;
  pt := ListBox.ScreenToClient (pt);
  ix := ListBox.ItemAtPos (pt, true);
  if ix >= 0  then...
Er ist trotzdem noch manchmal aufgetreten und ich wusste nicht warum. Nach dem Ändern der OnClick-procedure funktioniert es jetzt so wie es sollte.

Vielen Dank!!
 
Zurück