Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#10

AW: Inhalt TStringList in andere TStringList kopieren

  Alt 25. Jun 2015, 11:59
Zuerst paar Punkte vorweg: wer Try Finally ignoriert, weil er es zu dem Zeitpunkt noch nicht braucht und es mal später reinschreiben will, der verdient all seine Probleme. Denn wer Try Finally direkt schreibt, sieht wo es happert. Es fällt schon alleine durch den Block auf wo noch etwas fehlt. Wer es nicht macht, den kann man nicht bedauern wenn es paar Stunden an einem Problem hängt. Das sind selbstfabrizierte Probleme.

Wenn man einmal TempStringlist als Variablennamen definiert hat, dann bleibt man dabei. Man schreibt es nicht mal TempStringlist, mal Tempstringlist, mal TempstringList. In der Windowswelt ist es egal, es erhöht aber die Lesbarkeit. In anderen BS ist das ein Fehler.

Ich weiß zwar nicht was du machen willst, aber ja, ein Free ist immer nötig.

Wenn du an Result (TStringList) etwas übergeben willst, wie wäre es wenn du es erst erzeugen würdest?

Was meinst du mit kopieren? Willst du tatsächlich nur die Adresse kopieren oder den Inhalt?

Ein Vorschlag:
Delphi-Quellcode:
function ManipulateList(ThatList: TStringlist): TStringlist;
var
  TempStringList: TStringlist;
begin
  TempStringList := TStringList.Create;
  try
    TempStringList.AddStrings(ThatList);

    //hier irgendwas machen

    Result := TStringList.Create;
    Result.AddStrings(TempStringlist);
  finally
    TempStringList.Free;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  sl, slResult: TStringList;
begin
  sl := TStringList.Create;
  try
    for i := 1 to 20 do
      sl.Add(IntToStr(i));

    slResult := ManipulateList(sl);

    ShowMessage(slResult.Text);

    slResult.Free;
  finally
    sl.Free;
  end;
end;
  Mit Zitat antworten Zitat