Einzelnen Beitrag anzeigen

Benutzerbild von arne99
arne99

Registriert seit: 11. Jan 2005
Ort: Hamburg
158 Beiträge
 
Turbo Delphi für Win32
 
#1

Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 11:49
Hallo folgender Tatbestand:

Ich habe eine Form, eine Listview1 und 2 ValueListEditoren.
Nun vesuche ich das selektierte Listview1.Selected ITEM auszulesen und in den ValueListEdit1 und 2 reinzupacken!

Fehler:
Wenn ich jedoch einen Lsitview1 Eintrag habe, wo nicht alle Substrings ausgefüllt sind erhalte ich die Message: Listenindex überschreitet das Maximum (4).

Frage:
// Für dieses Beispiel/Problem gibt es leider noch keine genaue Hilfe bei DP, daher meine Frage:

Wie kann ich den SelectedCode umschreiben, dass er mir die Felder die im Listview1 LEER sind einfach im ValueListEditor auch LEER macht. (aber hinzufügt!) ???

Hier mein Code:

Delphi-Quellcode:
procedure TForm1.ListView1Click(Sender: TObject);
begin

 if (listview1.Items.Count <> 0) and (listview1.Selected <> nil) then

  begin

            vle1.Strings.Clear;
            vle1.Strings.BeginUpdate;
            
            vle1.TopRow:=vle1.InsertRow('Config-Name',listview1.Selected.Caption,true);
            vle1.InsertRow('Datasource-Name',listview1.Selected.SubItems[0],true);
            vle1.InsertRow('Service-URL',listview1.Selected.SubItems[1],true);
            vle1.InsertRow('LFS-Cache-Path',listview1.Selected.SubItems[2],true);
            vle1.InsertRow('LFS-Config-Name',listview1.Selected.SubItems[3],true);
            vle1.Strings.EndUpdate;

            
            vle2.Strings.Clear;
            vle2.Strings.BeginUpdate;

            if listview1.Selected.SubItems[4]<>'then
                                 begin
            vle2.TopRow:=vle1.InsertRow('Datasource-Name',listview1.Selected.SubItems[4],true);
                                             end
                                             else begin
                                                 showmessage('The Configuration ' +listview1.Selected.Caption + ' is corrupt!');
                                             end;

          vle2.InsertRow('Database-Type',listview1.Selected.SubItems[5],true);

            vle2.InsertRow('Database-URL',listview1.Selected.SubItems[6],true);

            vle2.InsertRow('Database-Driver',listview1.Selected.SubItems[7],true);

           vle2.InsertRow('LFS-Config-Name',listview1.Selected.SubItems[8],true);

           vle2.InsertRow('LFS-Cache-Path',listview1.Selected.SubItems[9],true);
          try
            vle2.InsertRow('DB-User',listview1.Selected.SubItems[10],true);
          except
            begin
                          vle2.DeleteRow(6);

                                    vle2.InsertRow('DB-User','',true);
            end;
               end;
          try
            vle2.InsertRow('DB-Password',listview1.Selected.SubItems[11],true);

        except
            begin
                          vle2.DeleteRow(7);

                          vle2.InsertRow('DB-Password','',true);
            end;
          end;
           try
            vle2.InsertRow('LFS-User',listview1.Selected.SubItems[12],true);
             except
            begin
                          vle2.DeleteRow(8);

                          vle2.InsertRow('LFS-User','',true);
            end;
           end;
           try
            vle2.InsertRow('LFS-Password',listview1.Selected.SubItems[13],true);
             except
            begin
                          vle2.DeleteRow(9);

                          vle2.InsertRow('LFS-Password','',true);
            end;
           end;
           vle2.Strings.EndUpdate;
      
end
else exit;





end;
Selbst durch Anhaltepunkte finde ich nicht genau den Fehler, leider.

DAnke im Vorraus!
Arne
// u know? ID Service www.topsta.de
  Mit Zitat antworten Zitat