AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Lsitbox Einträge in Stringlist übertragen
Thema durchsuchen
Ansicht
Themen-Optionen

Lsitbox Einträge in Stringlist übertragen

Ein Thema von P4CM4N · begonnen am 24. Sep 2007 · letzter Beitrag vom 26. Sep 2007
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: Lsitbox Einträge in Stringlist übertragen

  Alt 25. Sep 2007, 22:50
Zitat von s-off:
Mich interessierte nur, ob es ausser diesem, noch einen weiteren Unterschied gibt, der in der Hilfe nicht erläutert ist.
Die Frage ist nach der Übertragung der kompletten Einträge formuliert worden. AddStrings() würde nur hinzufügen. Du hast in deiner Lösung eine frisch erstellte, lokale TStringList-Instanz benutzt. Nun weiss ich aber nicht, wo und wie der Threadersteller deinen Code einsetzt. Wenn er anhand seiner Frage eine direkte Zuordnung erhalten wollte und statt dessen hinten angehängte Einträge bekommt, dann ist seine Frage falsch beantwortet worden. Von daher habe ich nur die entsprechende Antwort zu dem Thread-Thema gegeben.

Und um deine Frage nochmal direkt zu beantworten: AddStrings() wird auch von Assign() benutzt:
Delphi-Quellcode:
procedure TStrings.Assign(Source: TPersistent);
begin
  if Source is TStrings then
  begin
    BeginUpdate;
    try
      Clear;
      AddStrings(TStrings(Source));
    finally
      EndUpdate;
    end;
    Exit;
  end;
  inherited Assign(Source);
end;
Nur sorgt Assign() dafür, dass die Einträge wirklich 1:1 übertragen werden und somit auch die alten Einträge entsprechend entfernt werden vor der Zuordnung.

Und zu deiner Free/FreeAndNil() Frage: Die grundlegenden Dinge wurden genannt. In deinem Beispielcode ist die StringList Instanz eine lokale Variable die nicht weiter verwendet wird. Von daher braucht es keinen zusätzlichen Overhead der NIL Setzung und zum anderen nicht eines weiteren Aufrufs. FreeAndNil() ist hier die zusätzliche Rolle Klebeband um das Leck, welches schon nach der ersten Dichtungsmasse nicht mehr vorhanden war - und dem Schildchen am Rohr: "Hier war einmal ein Leck"
  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 14:12 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