Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi AccessViolation mit Checkbox aber warum? (https://www.delphipraxis.net/58590-accessviolation-mit-checkbox-aber-warum.html)

chaosben 9. Dez 2005 12:13

Re: AccessViolation mit Checkbox aber warum?
 
Du könnstest dir den Index in der Tag-Eigenschaft der einzelnen Checkboxen merken.

lucius 9. Dez 2005 13:28

Re: AccessViolation mit Checkbox aber warum?
 
So habe es jetzt geschafft mit den ListviewIndex
Delphi-Quellcode:
if ListView.Items[z].SubItems[1] = 'TV - Kids' then
   begin
     slCheckFields.Assign(Listview.Items[z].SubItems);
     slCheckFields.Insert(0, inttostr(z) + Listview.Items[z].Caption); //<--ListIndex Zuweisung
     slCheckLines.Add(slCheckFields.CommaText);
     ListView.Items[z].Delete;
   end;
Delphi-Quellcode:
for i := Pred(slCheckLines.Count) downto 0 do
    begin
      CheckFieldList.CommaText := slCheckLines[i];
         with ListView.Items.Insert(strtoint(CheckFieldList[0])) do //ListIndex auslesen
            begin
              Caption := CheckFieldList[0];
              CheckFieldList.Delete(0);
              SubItems.Assign(CheckFieldList);
            end;
    end;
klapt alles ganz gut, es gibt aber noch nen kleines Problem, beim Ersten Durchgang wird alles Korrekt angezeigt.
Zitat:

570,2005-11-11,"TV-Kids",...... //570//
Aber beim Zweiten Durchgang klebt er den ListIndex neu an, obwohl ich doch die Stringlisten loesche.
Zitat:

570570,2005-11-11,"TV-Kids",...... //570570//
Was koennte das sein?

MFG Lucius.

marabu 9. Dez 2005 16:48

Re: AccessViolation mit Checkbox aber warum?
 
Hallo Lucius,

wodurch unterscheiden sich eigentlich IntToStr(z) und ListItem.Caption in deinem folgenden Code?
Vermutlich gar nicht. Du solltest es dann auch nicht verketten.

Delphi-Quellcode:
if ListView.Items[z].SubItems[1] = 'TV - Kids' then
begin
  slCheckFields.Assign(Listview.Items[z].SubItems);

  // und jetzt: doppelt hält besser - oder wie?
  slCheckFields.Insert(0, IntToStr(z) + Listview.Items[z].Caption);

  slCheckLines.Add(slCheckFields.CommaText);
  ListView.Items[z].Delete;
end;
Grüße vom marabu

lucius 9. Dez 2005 16:52

Re: AccessViolation mit Checkbox aber warum?
 
Hi marabu, erstmal Danke fuer deine Antwort, ich moechte doch nur das Item was geloescht wurde wieder auf dem selben Platz zurueck einfuegen in der Listview.
Das ist alles was ich erreichen moechte.

Gruss Lucius.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 Uhr.
Seite 2 von 2     12   

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