AGB  ·  Datenschutz  ·  Impressum  







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

Listenindex überschreitet das Maximum

Ein Thema von arne99 · begonnen am 15. Dez 2006 · letzter Beitrag vom 16. Dez 2006
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von arne99
arne99

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

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 12:42
Genau das will ich ja erreichen, jedoch weiß ich nicht wie ich analysieren wann das SubItem vorhanden ist und wann nicht. Danke fuer die Tipps bislang.
Arne
// u know? ID Service www.topsta.de
  Mit Zitat antworten Zitat
Benutzerbild von arne99
arne99

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

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 12:45
Zitat von ibp:
Zitat von arne99:
...mit Assign geht nix...
ich hatte assigned gesagt!
if assigned(listview1.Selected.SubItems[4]) then geht ja auch nicht. er erwartet "("
Arne
// u know? ID Service www.topsta.de
  Mit Zitat antworten Zitat
Benutzerbild von inherited
inherited

Registriert seit: 19. Dez 2005
Ort: Rosdorf
2.022 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 13:12
Du willst praktisch, dass keine Fehlermeldung kommt, sondern er lediglich bei einem Fehler etwas anderes tut?
Beachte dann bitte das, solang nicht anders eingestellt, immer ein Fehler angezeigt wird solange du den Delphi-Debugger dranhängen hast
(Sorry wenn ich dich falsch verstanden habe)
Nikolai Wyderka

SWIM SWIM HUNGRY!
Neuer Blog: hier!
  Mit Zitat antworten Zitat
Benutzerbild von arne99
arne99

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

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 13:18
Also nochmal, weiß nich ob ich das hier zu kompliziert beschreibe, dennoch:

Was ich will:

1. Listview-SubItems von einem selektierten Item sollen ausgelesen werden
2. Falls ein SubItem nicht vorhanden ist (= nil oder so) soll er ''-String Nutzen um dennoch etwas zu haben, was er evtl. wieder zurückschreiben kann.

Also die Frage:

Wie frage ich ab ob ein SubItem da ist oder nicht. (oder nil etc)
Arne
// u know? ID Service www.topsta.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 13:28
Moin Arne,

da Du keine Lücken in den Subitems haben kannst sollte die Prüfung auf "Index des abzufragenden SubItems < Count" ausreichen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von arne99
arne99

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

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 13:40
Das kann man aber nicht in einer IF-Anweisung / Abfrage verschachteln.
Beispielcode? (Klingt ja logisch, habs verstanden, umzusetzen geht es aber nich)
Arne
// u know? ID Service www.topsta.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 14:36
Moin Arne,

als Funktion, die Du noch mit in die Methode einbauen kannst (der Übersicht halber):


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

  function IsValidSubitemIndex(const AiIndex : integer) : boolean;
  begin
    Result := AiIndex < ListView1.Selected.SubItems.Count;
  end;

begin
  //...
  if IsValidSubitemIndex(5) then begin
    // Hier ist dann sichergestellt, dass ListView1.Selected.SubItems[5] existiert
  end;
  //...
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
marabu

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

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 15:01
Hallo,

oder du stellst deinen Code noch etwas mehr um:

Delphi-Quellcode:
function AddString(vle: TValueListEditor; li: TListItem;
    const name: String; index: Integer): Integer;
var
  value: String;
begin
  if index < 0 then
    Result := vle.InsertRow(name, li.Caption, True) else
  begin
    if index < li.SubItems.Count
      then value := li.SubItems[index]
      else value := '';
    Result := vle.InsertRow(name, value, True);
  end;
end;

procedure TForm1.ListView1Click(Sender: TObject);
begin
  with ListView1 do
    if Assigned(Selected) then
    begin
      vle1.Strings.Clear;
      vle1.Strings.BeginUpdate;
      vle1.TopRow := AddString(vle1, Selected, 'Config-Name', -1);
      AddString(vle1, Selected, 'Datasource-Name', 0);
      AddString(vle1, Selected, 'Service-URL', 1);
      AddString(vle1, Selected, 'LFS-Cache-Path', 2);
      AddString(vle1, Selected, 'LFS-Config-Name', 3);
      vle1.Strings.EndUpdate;

      vle2.Strings.Clear;
      vle2.Strings.BeginUpdate;
      vle2.TopRow := AddString(vle2, Selected, 'Datasource-Name', 4);
      AddString(vle2, Selected, 'Database-Type', 5);
      AddString(vle2, Selected, 'Database-URL', 6);
      AddString(vle2, Selected, 'Database-Driver', 7);
      AddString(vle2, Selected, 'LFS-Config-Name', 8);
      AddString(vle2, Selected, 'LFS-Cache-Path', 9);
      AddString(vle2, Selected, 'DB-User', 10);
      AddString(vle2, Selected, 'DB-Password', 11);
      AddString(vle2, Selected, 'LFS-User', 12);
      AddString(vle2, Selected, 'LFS-Password', 13);

      if vle2.Strings.Values['Datasource-Name'] = 'then
        ShowMessage('The Configuration ' + listview1.Selected.Caption + ' is corrupt!');

      vle2.Strings.EndUpdate;
    end;
end;
Getippt und nicht getestet.

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von arne99
arne99

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

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 15:23
Hey danke, konnte beides gebrauchen und verwenden. Funzt+VIELEN DANK!!!
Arne
// u know? ID Service www.topsta.de
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#20

Re: Listenindex überschreitet das Maximum

  Alt 15. Dez 2006, 15:36
Ansonsten hätte ich auch noch die Idee, dass du die Substrings schon immer erstellst. Egal, ob vorhanden oder nicht.
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 05:53 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