Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TStrings (https://www.delphipraxis.net/13926-tstrings.html)

Matze 29. Dez 2003 12:37


TStrings
 
Hi!

Ich blicke gerade gar nicht mehr durch. :duck:

Ich hab ein Problemchen, was wahrscheinlich 95% hier wissen.

Delphi-Quellcode:
var s: TStrings:
...
s :=[ListBox1.Items, 'c:\Hallo.jpg']
Was mache ich da falsch?

Luckie 29. Dez 2003 12:41

Re: TStrings
 
Zitat:

Zitat von Matze
Was mache ich da falsch?

Du sagst uns nicht, was du eigentlich vorhast und was für ein fehler kommt. :roll:

Desweiteren sollte man TStrings nicht einfach so benutzen, da die Klasse nur virtuelle Methoden hat, die erst von Abkömmlingen von TStrings wirklich implementiert werden. Nimm also TStringList.

RobertS 29. Dez 2003 12:44

Re: TStrings
 
vielleicht solltest du einfach den String wieder mit ' schließen

Matze 29. Dez 2003 12:50

Re: TStrings
 
@Robert: sry, ist nur ein Tippfehler hier, das hab ich in Delphi so.

Ich möchte mittels ZLib Dateien zu einer Zusammenfassen und da hab ich in der ListBox die dateinamen und das hallo entspricht auch einem, ich hab's anschaulicher nur so geschrieben.

[Edit]Ich hab den 1.beitrag editirt, bzw, dessen Code ;) [/Edit]

Giantics 29. Dez 2003 13:20

Re: TStrings
 
Wolltest du sowas haben?
Delphi-Quellcode:
var s: TStrings;
begin
  ...
  S := TStringList.Create;
  try
    S.Assign(ListBox1.Items);
    S.Add('c:\Hallo.jpg');
  finally
    S.Free;
  end;

Matze 29. Dez 2003 13:54

Re: TStrings
 
Cool, danke, das war's! :love:

Matze 29. Dez 2003 13:57

Re: TStrings
 
Ich hab's halt ein bisschenanders geschrieben:
Delphi-Quellcode:
var s: TStrings;
begin
  ...
  S.Assign(ListBox1.Items);
  S.Add('c:\Hallo.jpg');
Die Stringlist lasse ich weg ;)

[Edit]Ich brauch sie doch ;)[/Edit]

Nochmals danke! :thumb:

Giantics 29. Dez 2003 14:04

Re: TStrings
 
Zitat:

Zitat von Matze
Ich hab's halt ein bisschenanders geschrieben:
Delphi-Quellcode:
var s: TStrings;
begin
  ...
  S.Assign(ListBox1.Items);
  S.Add('c:\Hallo.jpg');
Die Stringlist lasse ich weg ;)

Nochmals danke! :thumb:

:gruebel: Was heist "ein bisschen anders"?
Du kannst ja die Zeile "s:=TStringList.Create" nicht einfach weglassen.
Es sei den, es wird ihr irgendwas anderes zugewiesen.
Wenn dies nicht gemacht wird, werden die Daten irgendwo im Speicher abgelegt, :warn: das gibt SpeicherLeaks!!!

Matze 29. Dez 2003 14:09

Re: TStrings
 
Hab ich auch gemerkt (siehe ein Post über dir), kann ich ja nicht wissen ;)

Danke!

Matze 29. Dez 2003 14:10

Re: TStrings
 
Ich meine, diehe das [edit] einen Post über deinem, das musste ich anfügen, aber bevor du geschrieben hast ;)

Pseudemys Nelsoni 29. Dez 2003 14:17

Re: TStrings
 
was ist der unterschied zwischen TSTringList, und TStrings?

choose 29. Dez 2003 14:21

Re: TStrings
 
Zitat:

Zitat von Pseudemys Nelsoni
was ist der unterschied zwischen TSTringList, und TStrings?

Zitat:

Zitat von OH
TStrings enthalten abstrakte bzw. rein virtuelle (C++ Terminologie) Methoden und sollten nicht direkt instantiiert werden.


Giantics 29. Dez 2003 14:22

Re: TStrings
 
@Matze: Sorry, hat ich wohl übersehen :-D

@Pseudemys Nelsoni:
TStrings ist die Vorfahrenklasse von TStringList (abstrakte Basisklasse).
Aus der Delphi Hilfe:
Zitat:

TStringList implementiert die von TStrings eingeführten abstrakten Eigenschaften und Methoden und führt selbst neue Eigenschaften, Ereignisse und Methoden ein, die

die in der Liste enthaltenen Strings sortieren.
doppelte Strings aus sortierten Listen entfernen.
auf Änderungen des Listeninhalts reagieren.

Pseudemys Nelsoni 29. Dez 2003 14:30

Re: TStrings
 
danke :)

kann mir noch jemand ein beispiel nennen wo man TSTrings überhaupt braucht?

choose 29. Dez 2003 14:36

Re: TStrings
 
Abstrakte Klassen sind ein nützliches Instrument zur objekt orientierten Modellierung. Ich habe diesen Java-Artikel nur kurz überflogen, er sollte den sinnvollen Einsatz solcher Basisklassen aber demonstrieren.

Christian Seehase 29. Dez 2003 16:47

Re: TStrings
 
Moin Pseudemys Nelsoni,

kurz gesagt, kannst Du so eine Basisklasse z.B. sehr gut als Parametertyp verwenden, so dass Du alles übergeben kannst, das vom Typ her von dieser Klasse und allen abgeleiteten ist.

Wird nun TStrings als Parametertyp angegeben, so kannst Du Memo.Lines ebenso übergeben, wie TStringList.


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