Einzelnen Beitrag anzeigen

padavan

Registriert seit: 12. Jan 2005
271 Beiträge
 
Delphi 7 Enterprise
 
#1

fehler in Delphi 7 bzgl Listbox?!

  Alt 4. Mai 2005, 07:20
Hallo Delphianer,

kann es sein, dass es im Delphi einen echt krassen Bug gibt?
(wahrscheinlich gibt es sowas, hätte aber nie gedacht, dass ein Amateur wie ich auf sowas stößt)
Oder mache ich evtl. einen äußerst dummen Fehler?

Folgendes:
Habe eine Listbox in einem MP3-Player (ja sowas soll´s geben) in dem Titel stehen, welche dann abgearbeitet werden.
Wenn ich jetzt zum Beispiel einen Titel irgendwo in der Liste ganz nach oben setzen will tat ich das immer so:

Delphi-Quellcode:
begin
  listbox1.Items.Insert(0,listbox1.Items[listbox1.itemindex]);
end;
So hatte ich es geschafft, dass er den Titel in der Liste welchen man sich greift quasi dann an oberste Stelle setzt.
Wenn man jetzt aber mehrere Titel auswählte, so spielte er ja den als nächstes welchen man zuletzt gewählt hat. Das fand ich doof, also habe ich folgende Änderung vorgenommen:

Delphi-Quellcode:
var wishes: integer;
begin
  listbox1.Items.Insert(wishes,listbox1.Items[listbox1.itemindex]);
end;
Wishes zähl ich jetzt einfach mit jedem "wunsch des Hochsetztens" hoch.
Die Variable wishes macht nun scheinbar Ärger, denn manchmal (ich konnte noch nicht greifen, wann das passiert) gibt´s einen so krassen Fehler im Programm, dass es sich quasi total aufhängt. Es kommen irgendwelche eigenartige Meldungen "Zugriffsverletzung in Modul xy" usw.
Ich habe beobachtet, dass er irgendwelche seltsamen Zeichen dann an oberste Stelle setzt.

Also habe die Aktion mit Try Except gekapselt.
Wenn dann der Fehler mal auftritt, löst die Exception auch aus, allerdings bringt´s nichts, denn danach kackt das Programm genauso ab, wie ohne Exception.

Nebenbei habe ich die Variable wishes als Globale Variable extra auf 0 vorbefruchtet und auch im OnCreate Erreignis auch noch zu 0 beschrieben, da ich dem Vorbefruchten in der Deklaration nicht getraut habe.
Ich konnte mir den Fehler nur so erklären, dass wishes einen Wert kleiner 0 hatte und deshalb der Fehler kam, aber das kann ich so eigentlich ausschließen.

Bin für jeden Hinweis dankbar.
Grüße
Padavan
  Mit Zitat antworten Zitat