Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Drag Drop 2 Listbox - Letzter Eintrag verschiebt sich nicht


whitef - Sa 04.06.11 21:42
Titel: Drag Drop 2 Listbox - Letzter Eintrag verschiebt sich nicht
hi,
hätte da wieder mal ein problem...

ich habe 2 ListBox. ich habe in der einen einträge, die in die andere hinzugefügt werden kann.
Als möglichkeit habe ich dem user, einen button erzeugt und eine drag n drop funktion, die das verschieben von ListBox1 zur ListBox2 ermöglichen.
Beides funktioniert eigentlich auch wunderbar.

Mein Problem besteht darin, dass wenn der User das letzte Item markiert und dann mittels drag n drop das item auf ListBox2 fallen lässt, dass da folgender fehler kommt:
(das gleiche auch mittels button!)

Quelltext
1:
2:
3:
4:
5:
6:
7:
---------------------------
Debugger Exception Notification
---------------------------
Project xxx.exe raised exception class EConvertError with message ''' is not a valid floating point value'.
---------------------------
Break   Continue   Help   
---------------------------


So sieht mein OnDragDrop der Empfänger ListBox aus:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TFormErstellen.lb02DragDrop(Sender,
  Source: TObject; X, Y: Integer);
var
  index : Integer;
  nri, nrs, sss : String;
begin
  if (Source is TJvListBox) then
  begin
    index := TJvListBox(Source).ItemIndex;

   lb02.Items.Add(TJvListBox(Source).Items[index]);    // <<<<<<< Problemkind!
   TJvListBox(Source).Items.Delete(index);


sobald ich // lb02.Items.Add(TJvListBox(Source).Items[index]); ausklammer, tritt keine exception mehr auf, aber in der Empfänger ListBox erscheint auch kein neuer Eintrag.


jaenicke - So 05.06.11 06:51

Hast du vielleicht irgendwelche Events zugewiesen für die Listboxen?

Denn das ist meine einzige logische Erklärung warum in solchem internen Quelltext der Komponenten solch ein Fehler auftreten könnte.


whitef - So 05.06.11 09:08

sry, dass du dir die zeit gemacht hast, dass hier zu lesen.

Die Frage ist überflüssig, ich konnte den fehler weiter eingrenzen und habe ihn in einer anderen procedure entdeckt.
Bei der procedure der Empfänger ListBox hatte ich ein Filter erstellt, der gleich das gedropte nach gewissen kriterien filtert; dem Filter hat einiges nicht gepasst gehabt.
also an sich funktioniert alles im ersten post...

es hat sich also erledigt. sry!