Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi stellst sich mit Listbox voll an, bäääh (https://www.delphipraxis.net/3829-delphi-stellst-sich-mit-listbox-voll-baeaeaeh.html)

Seikilos 1. Apr 2003 18:29


Delphi stellst sich mit Listbox voll an, bäääh
 
Meine idee war es eine liste von dateien in einer listbox anzuzeigen um dann mit verschiedenen methoden aus den Strings zeichen zu entfernen.
Ich hab hier im 4 eintrag der liste2 einen string mit _, und _ sollen gefiltert werden:

Delphi-Quellcode:
...
while Pos('_', liste2.items[i]) > 0 do
           BEGIN
           po:=Pos('_', liste2.items[i]);
           delete(liste2.items[i],po,1);
           END;
....
Klappt nicht
"[Fehler] Unit1.pas(91): Konstantenobjekt kann nicht als Var-Parameter weitergegeben werden"
, denn er weigert sich, dass zu ändern, was soll der müll?

Mit

liste2.items[0]:='Das ist n text';
kann ich den text ersetzten, aber mit delete nicht, und
liste2.items[0][1]:='D';
nimmt er auch nicht, aber es ist dennoch n string. Das nervt total, was soll ich da machen? Es durch n string filtern?
Oder gibts da ne bessere methode?

Garby 1. Apr 2003 18:46

Hallo,

erst Hilfe lesen, dann müll sagen :wink:

so kannst du alle Vorkommen von '_' im String mit '' ersetzen:
Delphi-Quellcode:
  ListBox1.Items[0] := StringReplace(ListBox1.Items[0], '_', '', [rfReplaceAll, rfIgnoreCase]);

Seikilos 1. Apr 2003 18:48

ja moment, darüber rede ich garnicht, stringreplace ist was anderes. Ich mein aber, warum er bei delete sowas meldet

Garby 1. Apr 2003 19:04

weil Delphi bei var-Parametern kein Konstantenobjekte zulässt.

Hier die Erklärung aus der Hilfe:
Da Variablenparameter nur durch die aufgerufene Prozedur oder Funktion geändert werden sollten, können Sie ein Konstantenobjekt nicht an einen Variablenparameter übergeben.

Falls Sie lediglich eine umfangreiche Datenstruktur effizient übergeben möchten und die aufgerufene Funktion die Struktur nicht verändern soll, können Sie statt dessen den Parameter const

Seikilos 1. Apr 2003 19:07

jo danke,
kurze frage noch, kann ich mit copy in listen arbeiten?

Garby 1. Apr 2003 19:31

ja, so gehts:
Delphi-Quellcode:
ListBox1.Items[5] := Copy(ListBox1.Items[0], 1, 3);
Wobei
Delphi-Quellcode:
ListBox1.Items[5]
bereits existieren muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz