AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

fehler in Delphi 7 bzgl Listbox?!

Ein Thema von padavan · begonnen am 4. Mai 2005 · letzter Beitrag vom 17. Mai 2005
Antwort Antwort
Seite 2 von 2     12   
padavan

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

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 10. Mai 2005, 08:00
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.


Frage an Mütze1 wäre also:
Kannst du mir mal eine Beispielzeile zeigen, wie man den Integerwert einer selektierten Zeile bekommt?

Danke schonmal
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 10. Mai 2005, 09:04
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:
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;
MfG
Muetze1
  Mit Zitat antworten Zitat
padavan

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

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 15. Mai 2005, 12:23
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:
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;
(*****************)
Warum auch immer, kommt manchmal die Exception und trotzdem hat die Listbox dann einen Fehler.
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
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#14

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 15. Mai 2005, 12:34
Hast du schonmal ein paar Breakpoint gesetzt, um zu schauen, welche Werte den Codeabschnitt zum Absturz bringen ?

(Debugging-Tutorial by MaBuSE)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 15. Mai 2005, 17:12
Nach langem Grübeln bin ich zu der Erkenntnis gelangt,
  • dass du eine Playlist in einer Listbox verwalten willst,
  • dass du diese Playlist sortieren möchtest, während sie gespielt wird,
  • dass nicht der beim Verschieben fokussierte Titel als nächstes gespielt werden soll.
Das positionsweise Schieben - aufwärts und abwärts - hatte ich dir ja schon an Herz gelegt, kam aber wohl nicht richtig an. Die Variable Wishes verstehe ich so, dass du deine Playlist in einen sortierten und einen nicht sortierten Bereich trennen willst, also zwei logische Listen in einer physischen. Nicht ausgesprochen intuitiv, aber auf jeden Fall originell. Damit das Abspielen nicht durch die Sortieraktionen gestört wird, musst du dir den aktuell gespielten Titel merken.

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
Angehängte Dateien
Dateityp: zip playtest_142.zip (2,4 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#16

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 15. Mai 2005, 18:30
Moin!

Delphi-Quellcode:
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;
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?

MfG
Muetze1
  Mit Zitat antworten Zitat
padavan

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

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 17. Mai 2005, 07:13
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
  Mit Zitat antworten Zitat
padavan

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

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 17. Mai 2005, 07:15
2ter Versuch ging auch nicht. Ein Zip File mit etwa 1,8MB und 8 Dateien darin sollte doch eigentlich gehen, oder?
  Mit Zitat antworten Zitat
padavan

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

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 17. Mai 2005, 07:30
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.
Angehängte Dateien
Dateityp: pdf dreamplayer_doku_296.pdf (588,4 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
padavan

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

Re: fehler in Delphi 7 bzgl Listbox?!

  Alt 17. Mai 2005, 07:38
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....

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!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz