Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listview CommaText mit Leerzeichen (https://www.delphipraxis.net/90779-listview-commatext-mit-leerzeichen.html)

ebber 23. Apr 2007 19:30


Listview CommaText mit Leerzeichen
 
Hallo

ich habe vor einiger Zeit mal diesen Code gefunden um in ein Listview etwas einzutragen.

Delphi-Quellcode:

procedure TForm3.ListViewAddItm(ListView: TListView; const ersteSpalte,
          Rest_CommaText: String; Checked: Boolean = true);
var
  ListItem: TListItem;

begin
  with ListView do
    begin
      ListItem := Items.Add;
      ListItem.Caption := ersteSpalte;
      ListItem.SubItems.CommaText := Rest_CommaText;
      If Checkboxes then
        Items.Item[Items.Count - 1].Checked := Checked;
    end;
end;


Wenn jetzt aber ein Leerzeichen in einem der Comma Texts ist dann geht es automatisch eine Spalte weiter. Kann man das irgenwie verhindern ?

MfG

mkinzler 23. Apr 2007 19:32

Re: Listview CommaText mit Leerzeichen
 
Das ist bei der Standard-Strngliste so. Du könntest die Leerzeichen ersetzen oder die Untereinträge anders erzeugen (Explode)

marabu 24. Apr 2007 07:05

Re: Listview CommaText mit Leerzeichen
 
Hallo,

wenn der Text (CommaText) zuerst kompatibel gemacht wird, dann kann der Code beibehalten werden:

Delphi-Quellcode:
function CommaText(const text: string; delimiter: Char = ','): string;
var
  s: TStrings;
begin
  s := TStringList.Create;
  try
    Explode(text, delimiter, s);
    Result := s.CommaText;
  finally
    s.Free;
  end;
end;
Die verwendete Funktion Explode() findest du dort: klick

Grüße vom marabu

ebber 29. Apr 2007 19:11

Re: Listview CommaText mit Leerzeichen
 
Danke. :thumb:

So gehts

CCRDude 29. Apr 2007 19:18

Re: Listview CommaText mit Leerzeichen
 
Ansonsten gibts ja noch TStringList.StrictDelimiter, mit dem man auch dafür sorgen kann, daß eine TStringList wirklich nur das vorgegebene Trennzeichen verwendet. Also, grob geraten:

Delphi-Quellcode:
ListItem.SubItems.StrictDelimiter := true;
ListItem.SubItems.Delimiter := ';';
ListItem.SubItems.DelimitedText := Rest_CommaText;
Leider nur in Delphi, FreePascal kennt StrictDelimiter noch nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:08 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