AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStrings übergeben

Ein Thema von jjep · begonnen am 10. Okt 2007 · letzter Beitrag vom 10. Okt 2007
Antwort Antwort
jjep

Registriert seit: 19. Jun 2007
Ort: Wettingen CH
78 Beiträge
 
#1

TStrings übergeben

  Alt 10. Okt 2007, 10:46
Hallo zusammen

In meinem Programm möchte mit einer Funktion TStrings zurückgeben, wie folg:

Delphi-Quellcode:
function TForm1.getStrings:Tstrings;
var Liste: TStrings;
begin
Liste := TStringlist.Create;
Try
  Liste.Add('erste Zeile');
  Liste.Add('zweite Zeile');
  Liste.Add('dritte Zeile');
  result := TStringlist.create;
  result.AddStrings(Liste);
finally
  Liste.Free;
end;
end;
Ist es notwendig "result" zu kreiren? logisch ohne gehts nicht, aber gäbes nicht eine ander möglichkeit die Strings zu übergeben?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TStrings übergeben

  Alt 10. Okt 2007, 10:49
Übergib eine StringListe als Parameter.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.611 Beiträge
 
#3

Re: TStrings übergeben

  Alt 10. Okt 2007, 10:50
Du könntest die TstringList ist der aufrufenden Methode erzeugen und als var - Parameter in die Methode reingeben.

Alternativ kannst Du auch einfach ein Array von Strings erzeugen und zurückgeben.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#4

Re: TStrings übergeben

  Alt 10. Okt 2007, 10:52
Du könntest deinen TString ausserhalb erzeugen in die Methode reingeben dort verarbeiten und
könntest danach damit weiterarbeiten.

Delphi-Quellcode:
function TForm1.getStrings(Liste:Tstrings);
begin
  Liste.Add('erste Zeile');
  Liste.Add('zweite Zeile');
  Liste.Add('dritte Zeile');
end;
Edit:
Es muss nicht als var-Parameter reingegeben werden, da es eh ein Call-By-Reference aufruf ist.
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
jjep

Registriert seit: 19. Jun 2007
Ort: Wettingen CH
78 Beiträge
 
#5

Re: TStrings übergeben

  Alt 10. Okt 2007, 10:55
Ja logisch
danke vielmals an alle
  Mit Zitat antworten Zitat
Lord Shadow

Registriert seit: 10. Okt 2007
15 Beiträge
 
#6

Re: TStrings übergeben

  Alt 10. Okt 2007, 11:14
Oder ganz anders ^^ wenn ich dein Quelltext von oben mal aufgreife:

Delphi-Quellcode:
function TForm1.getStrings:Tstrings;
var Liste: TStrings;
begin
Liste := TStringlist.Create;
Try
  Liste.Add('erste Zeile');
  Liste.Add('zweite Zeile');
  Liste.Add('dritte Zeile');
  result:=Liste;
finally
  Liste.Free;
end;
end;
Du must result nicht erst Initilisieren und TStringList ist glaub ich auch kompatibel mit TStrings damit einfach nur result:=Liste und fertig.

Mfg Shadow
  Mit Zitat antworten Zitat
jjep

Registriert seit: 19. Jun 2007
Ort: Wettingen CH
78 Beiträge
 
#7

Re: TStrings übergeben

  Alt 10. Okt 2007, 11:17
Dies ist bei mir leider nicht gegangen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: TStrings übergeben

  Alt 10. Okt 2007, 11:19
Kann so auch nicht gehen, da du die Liste vor der Rückgabe wieder zerstörst!
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: TStrings übergeben

  Alt 10. Okt 2007, 12:31
Hallo,

es geht auch ohne Zwischenvariable. Wenn eine Funktion ein Objekt liefert, dann hat sich ein Namenspräfix "Create" eingebürgert:

Delphi-Quellcode:
function CreateStrings: TStrings;
begin
  Result := TStringlist.Create;
  with Result do
  begin
    Add('erste Zeile');
    Add('zweite Zeile');
    Add('dritte Zeile');
  end;
end;
Wenn es keine zwingenden Gründe dafür gibt, dann sollte man diese Funktion nicht als Methode der Form entwerfen.

Grüße vom marabu
  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 13:24 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