AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Fehlermeldung beim Setzen der TListItem.Caption
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung beim Setzen der TListItem.Caption

Ein Thema von little-x · begonnen am 4. Okt 2007 · letzter Beitrag vom 4. Okt 2007
Antwort Antwort
little-x

Registriert seit: 13. Apr 2007
Ort: Brandenburg
60 Beiträge
 
Delphi 6 Enterprise
 
#1

Fehlermeldung beim Setzen der TListItem.Caption

  Alt 4. Okt 2007, 11:27
Hallo,

folgender Code ruft eine Fehlermeldung hervor:

Delphi-Quellcode:
   LVItem:= MyListView.Items.Add;
   LVitem.Caption := 'testbezeichnung';
Die Fehlermeldung lautet: "Listenindex überschreitet das Maximum(1)". Diese kenne ich eigentlich im Zusammenhang mit dem Sprengen von Array-Dimensionsgrenzen, aber hier ist doch eigentlich kein Array verletzt!

Um die Sache zu vereinfachen: Der Fehler tritt nur auf, wenn ich die bestehenden Listeneinträge per Klick auf einen der Columnheader sortiert habe. Das mache ich wie folgt:

Delphi-Quellcode:
procedure TForm1.MyListViewColumnClick(Sender: TObject;
  Column: TListColumn);
begin
        if MyListView_sort = 0 then MyListView_sort := 1; //glob. Programmvariable
        if MyListView_col_idx = Column.Index then //glob. Programmvariable
                MyListView_sort := MyListView_sort * -1
        else
                MyListView_sort := 1;
        MyListView_col_idx := Column.Index;
        MyListView.AlphaSort;


procedure TForm1.MyListViewCompare(Sender: TObject; Item1, Item2: TListItem;
  Data: Integer; var Compare: Integer);
        var ix :integer;
begin
        if MyListView_col_idx = 0 then
                Compare := CompareText(Item1.Caption,Item2.Caption)
        else begin
                ix := MyListView_col_idx - 1;
                Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
        end;
        Compare := Compare * MyListView_sort;
end;

end;
Wobei ich zugeben muss, dass ich mir das kopiert habe. Das Sortieren funktioniert so wunderbar, aber ich verstehe nicht wirklich was da passiert. Jedenfalls sorgt es für eine Fehlermeldung, wenn ich an die Liste ein neues Item anfüge und dessen Caption-Eigenschaft setzen möchte.

Viele Grüße
manchmal machts mich mürbe
  Mit Zitat antworten Zitat
little-x

Registriert seit: 13. Apr 2007
Ort: Brandenburg
60 Beiträge
 
Delphi 6 Enterprise
 
#2

Re: Fehlermeldung beim Setzen der TListItem.Caption

  Alt 4. Okt 2007, 11:41
Ich nochmal!

Ich glaube zu erkennen, dass dadurch dass die Liste sortiert wurde, ein "onCompare" beim Anfügen eines neuen ListItems ausgelöst wird - wobei die Variable MyListView_col_idx z.B. den Wert 2 hat und dadurch die nicht vorhandenen SubItems durchsucht werden.

Ich denke ich kriege das Problem allein gelöst - Entschuldigt den Aufruhr....

Manchmal sehe ich eben den Wald vor Bäumen nicht!
manchmal machts mich mürbe
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:47 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