![]() |
Re: fehler in Delphi 7 bzgl Listbox?!
Mist,
mit meiner Freude war ich zu schnell, der Fehler trat erst nicht mehr auf, aber dann irgendwie hab ich ihn trotzdem wieder zum Abstürzen gebracht. :cry: Frage an Mütze1 wäre also: Kannst du mir mal eine Beispielzeile zeigen, wie man den Integerwert einer selektierten Zeile bekommt? Danke schonmal |
Re: fehler in Delphi 7 bzgl Listbox?!
Moin!
Da MultiSelect mehr als eine selektierte Zeilen haben kann, gibt dir der folgende Code immer den Index des ersten selektierten Eintrages zurück, oder -1 wenn keiner selektiert ist.
Delphi-Quellcode:
MfG
Function TForm1.GiveMeSelectedOne: Integer;
Var i : Integer; Begin If ( ListBox1.SelCount < 1 ) Then Result := -1 Else For i := 0 To Pred(ListBox1.Items.Count) Do If ( ListBox1.Selected[i] ) Then Begin Result := i; Break; End; End; Muetze1 |
Re: fehler in Delphi 7 bzgl Listbox?!
Hallo Mütze1,
nochmal danke für deine Bemühungen, aber ich werde den Gedanken nicht los, das ich doch irgendwie einen Bug in meinem Programm habe, der auf Delphi oder Windows beruht. Habe jetzt den dritten Lösungsansatz benutz, aber es ist immernoch möglich den Fehler zu generieren.
Delphi-Quellcode:
Warum auch immer, kommt manchmal die Exception und trotzdem hat die Listbox dann einen Fehler.
Function TForm1.GiveMeSelectedOne: Integer;
Var i : Integer; Begin If (ListBox1.SelCount < 1) Then Result := -1 Else For i := 0 To Pred(ListBox1.Items.Count) Do If (ListBox1.Selected[i]) Then Begin Result := i; Break; End; End; procedure TForm1.PB_Move_title_to_topClick(Sender: TObject); var y: integer; begin if (Listbox1.SelCount = 1) and (Listbox1.ItemIndex >= 0) then begin try listbox1.Items.Move(Givemeselectedone,wishes); Wishes := Wishes + 1;// inc(wishes); LEDDisplay_wishes.Value := wishes; except Showmessage('error'); end; end; end; (*****************) Eigenartigerweise hat´s auch hier wieder eine Weile funktioniert und dann auf einmal wieder nicht. Ich verstehs einfach nicht. Benutze ich statt der Variable Wishes einfach nur die 0 klappt´s. Benutze ich ne Variable, welche immer mindestens 0 oder größer ist, kracht´s ab und zu. Habe mich langsam damit abgefunden. Vielleicht sollte ich umsatteln auf eine andere Komponente. Anstatt einer Listbox lieber eine Listview??!?!! Ein Programmierer bei uns in der Firma sagte mir, es wäre denkbar, dass die Listbox wirklich von Windowsseiten Fehlerbehaftet ist. Sie ist ja nun auch schon lange im Geschäft - seit Win 3.11 ?! Padavan |
Re: fehler in Delphi 7 bzgl Listbox?!
Hast du schonmal ein paar Breakpoint gesetzt, um zu schauen, welche Werte den Codeabschnitt zum Absturz bringen ?
( ![]() |
Re: fehler in Delphi 7 bzgl Listbox?!
Liste der Anhänge anzeigen (Anzahl: 1)
Nach langem Grübeln bin ich zu der Erkenntnis gelangt,
Vielleicht kannst du an meinem Code-Beispiel erkennen, was du falsch machst, denn ich glaube nicht an einen Fehler in der Listbox-Komponente. Kann aber auch sein, dass ich dein Problem nicht mal ansatzweise verstanden habe. Wer weiß. Grüße vom marabu |
Re: fehler in Delphi 7 bzgl Listbox?!
Moin!
Delphi-Quellcode:
Schon alleine bei diese Procedure: Kannst du dir immer 100%ig sicher sein, dass GiveMeSelectedOne und Wishes ordentliche Werte enthalten? Werden diese mit korrigiert, wenn du Elemente löscht?
procedure TForm1.PB_Move_title_to_topClick(Sender: TObject);
var y: integer; begin if (Listbox1.SelCount = 1) and (Listbox1.ItemIndex >= 0) then begin try listbox1.Items.Move(Givemeselectedone,wishes); Wishes := Wishes + 1;// inc(wishes); LEDDisplay_wishes.Value := wishes; except Showmessage('error'); end; end; end; MfG Muetze1 |
Re: fehler in Delphi 7 bzgl Listbox?!
zu jfheins,
mit Breakpoints habe ich eine Fehlersuche auch schon versucht, leider ohne Erfolg, denn wenn der Fehler auftritt schmiert nicht nur das Programm, sondern auch die IDE ab. Leider! zu mütze1, jo, wenn der Player ein Lied weiterspielt, dann wird natürlich an anderer Stelle dann die Variable wishes wieder um eins dekrementiert. Bis 0, dann ist schluss, sie kann nie kleiner als 0 werden, das ist mehrfach abgefangen. Zu marabu, sorry, ich habe die Informationen ziemlich Tröpfchenweise rausgelassen, und so weiß dann keiner so recht, was ich eigentlich will. Sorry, dass war keine Absicht und auch keine Berechnung. Ich habe einfach mal das Programm angehängt, dann kann man einfach mal schaun was ich da treibe - evtl. ist´s dann ganz schnell klar, was ich meine. Zur Beruhigung, falls das Programm abschmieren sollte, unter mindestens Win2000 ist es kein Problem den Task zu beenden, bei Win98 hab ich´s noch nicht versucht, also lasst es lieber..... Ist eine Zip-Datei mit allen Optionalen Featueres dabei, wer keinen Bock drauf hat, die Dreamplayer.exe allein reicht auch aus. PS: habe versucht einen Anhang an meine Antwort zu hängen, leider kommt dann eine Fehlermeldung beim Vorschau erstellen. Absenden geht auch nicht, deshalb kommt die Antwort erstmal so. Ich versuche es dann nochmal |
Re: fehler in Delphi 7 bzgl Listbox?!
2ter Versuch ging auch nicht. Ein Zip File mit etwa 1,8MB und 8 Dateien darin sollte doch eigentlich gehen, oder?
|
Re: fehler in Delphi 7 bzgl Listbox?!
Liste der Anhänge anzeigen (Anzahl: 1)
3ter Versuch
zwar nur die Doku, aber aus der sollte man es evtl. auch sehen können. Eigentlich hätte ich´s auch mal gerne vorgeführt, wo wir schon davon sprechen. :cry: |
Re: fehler in Delphi 7 bzgl Listbox?!
Leute,
ich bin so ein selten dämliches Ars..... Ich glaube ich hab en Fehler gefunden (zum dritten mal schon) Es war ein Klammerfehler. Habe nochmal geschaut, dort wo ich dafür sorge, dass wishes niemals kleiner 0 werden kann lag der Fehler. Nur unter bestimmten Bedingunen darf wishes dekrementiert werden, und ich hab´s durch einen Klammerfehler immer dekrementiert. Kein Wunder. Ist mir ziemlich peinlich, dass ich immer behauptet habe, dass sie auf keinen Fall kleiner 0 werden kann.... :oops: Es ist und bleibt so, das Problem sitzt vor dem Bildschirm. Sorry Leute und vielen vielen Dank für eure Unterstützung. (werde trotzdem nochmal versuchen, dass Zipfile anzuhängen, in der korrigierten Version natürlich) --> ne, geht net! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz