Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Verwendung von TStrings (https://www.delphipraxis.net/56382-verwendung-von-tstrings.html)

Martin K 4. Nov 2005 19:59


Verwendung von TStrings
 
Wie kann man TStrings manuell schreiben, ohne den Befehl Add zu verwenden?
Geht das überhaupt ?

z.B.:
Delphi-Quellcode:
var Test: TStrings;

Test:='Zeile 1'+#0+'Zeile 2'+#0+'Zeile 3';
Kann jemand den obigen Quellcode korrigieren, so dass er funzt?
(Ich hätte gerne einen Befehl, ohne Add).

Khabarakh 4. Nov 2005 20:02

Re: Verwendung von TStrings
 
Delphi-Quellcode:
Test.Text :='Zeile 1'#13#10'Zeile 2'#13#10'Zeile 3';
Manueller ist aber das falsche Wort, Add wird damit intern sowieso wieder aufgerufen.

[add] #0 würde den String beenden (der Rest wird von SetText ignoriert).[/add]

Martin K 4. Nov 2005 20:13

Re: Verwendung von TStrings
 
Hmm...
vom Prinzip war's das, was ich wollte.

Aber ich habe eine Prozedur, und will dort TStrings als Variable übergeben.
Delphi-Quellcode:
procedure Irgendwas(Test: TStrings);
Geht der Aufruf dann nur so:
Delphi-Quellcode:
var Test: TStrings;

Test.Text:='Zeile 1'+#0+'Zeile 2'+#0+'Zeile 3';
Irgendwas(Test);
oder kann ich die Prozedur auch ohne eine zusätzliche Variable aufrufen (so wäre es mir lieber):
Delphi-Quellcode:
Irgendwas('Zeile 1'+#0+'Zeile 2'+#0+'Zeile 3');
Wie geht das?

(Meinetwegen auch mit #13#10 anstatt #0, das ist mir eigentlich egal.)

Martin K 4. Nov 2005 20:20

Re: Verwendung von TStrings
 
oder:
Gibt's vielleicht eine Umwandlung von String nach TStrings ?

z.B.:
Delphi-Quellcode:
Irgendwas(StringToTStrings('Zeile 1'+#13#10+'Zeile 2'+#13#10+'Zeile 3'));

jim_raynor 4. Nov 2005 20:30

Re: Verwendung von TStrings
 
Delphi-Quellcode:
function StringToStrings(Text: String): TStrings;
begin
  result:=TStringList.Create; // TStringList weil TStrings ein abstrakter Typ ist und nicht instanziiert werden kann
  result.Text:=Text;
end;
Allerdings muss die StringListe auch mit Free wieder freigegen werden, was bei deiner Variante schwierig wird.

Martin K 4. Nov 2005 20:36

Re: Verwendung von TStrings
 
Ich wollte keine Function selber schreiben, sondern wissen ob's eine schon in Delphi gibt,
oder ob man TStrings so direkt irgendwie übergeben kann.

Aber anscheinend gibt's da nix in Delphi...

Aber Danke erstmal an euch!

Mr_G 4. Nov 2005 20:44

Re: Verwendung von TStrings
 
Zitat:

Zitat von jim_raynor
... TStringList weil TStrings ein abstrakter Typ ist und nicht instanziiert werden kann ...

Ich würde das dann so machen:
Delphi-Quellcode:
procedure Irgendwas(Wert: String);
begin
  var Test: TStringList;

  Test := TStringList.Create;
  Test.Text := Wert;
  ...
  Test.Free;
end;
Aufruf dann so:
Delphi-Quellcode:
Irgendwas('Zeile 1'+#13#10+'Zeile 2'+#13#10+'Zeile 3');

Martin K 4. Nov 2005 20:47

Re: Verwendung von TStrings
 
Danke, ich hab das Problem schon anders gelöst.

ibp 4. Nov 2005 21:51

Re: Verwendung von TStrings
 
und wie?


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