AGB  ·  Datenschutz  ·  Impressum  







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

TStrings definieren

Ein Thema von fapsons · begonnen am 16. Feb 2007 · letzter Beitrag vom 16. Feb 2007
Antwort Antwort
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#1

TStrings definieren

  Alt 16. Feb 2007, 08:36
Hallo Leute,

bin noch totaler Anfänger in Delphi und brauche um mit dem IBDataSet Steuerelement arbeiten zu können ein Objekt vom Typ TStrings.

Habe es wie folgt probiert:

Delphi-Quellcode:
...

var test :TStrings;
begin
  test := TStrings.Create;
  test.Free;
  test.Strings[0] := 'Dies ist ein Test';
...
Was habe ich falsch gemacht, nicht bedacht?

[edit=SirThornberry]Delphi-Tags gesetzt - Mfg, SirThornberry[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Schaedel
Schaedel

Registriert seit: 5. Jan 2006
Ort: Saarland
174 Beiträge
 
Delphi 2007 Professional
 
#2

Re: TStrings definieren

  Alt 16. Feb 2007, 08:42
Delphi-Quellcode:
 test := TStrings.Create;
test.Free;
test.Strings[0] := 'Dies ist ein Test';

Du erstellst einen TString und gibst ihn danach wieder frei... Versuchst aber dann auf den Tstring etwas zu schreiben der nicht mehr vorhanden ist.


Delphi-Quellcode:
 
try
  test := TStrings.Create;
  test.Strings[0] := 'Dies ist ein Test';
finally
  test.Free;
end;
So rum


Willkommen in der Delphipraxis.
Michael S.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: TStrings definieren

  Alt 16. Feb 2007, 08:46
Je nach dem was du vorhast, solltest du die Instanz vielleicht so:
test := TStringList.Create; erzeugen.
Außerdem mußt du erst einen Entrag erzeugen, bevor du ihm etwas zuweisen kannst, also
statt
test.Strings[0] := 'Dies ist ein Test'; nimmst du besser
test.Add('Dies ist ein Test');
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#4

Re: TStrings definieren

  Alt 16. Feb 2007, 08:56
Zitat von fapsons:
var test :TStrings;
begin
test := TStrings.Create;
test.Free;
test.Strings[0] := 'Dies ist ein Test';
...


Was habe ich falsch gemacht, nicht bedacht?
Ich würde sagen, du hast die Warnungen deines Compilers ignoriert. Der hat dir bestimmt bzgl. TStrings irgendwas von abstrakten Methoden erzählt. Nimm lieber TStringList, wie es mkinzler auch geschrieben hat.

Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#5

Re: TStrings definieren

  Alt 16. Feb 2007, 08:56
@schaedel:
so funktioniert das ganze auch nicht! Spätestens beim test[0] := 'bla' wird ein 'Abstrakter Fehler' geworfen!

Obwohl test vom Typ TStrings ist, muss das Createn anders erfolen (BTW: TString selbt kennt keine Methode .Create)
Delphi-Quellcode:
test := TStringList.Create;
test.Add('bla');
test.Add('blubb');

ShowMessage(test[0]); //<-- zeigt bla
ShowMessage(test[1]); // zeigt blubb

//--erst NACH der Verwendung von test diesen freigebe!!
test.Free
//EDIT: Uppsala, da haben sich die roten Kästen aber überschlagen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: TStrings definieren

  Alt 16. Feb 2007, 09:03
Zitat:
Obwohl test vom Typ TStrings ist, muss das Createn anders erfolen (BTW: TString selbt kennt keine Methode .Create)
Doch, da der Konstruktor von TObject geerbt ist. Imho dürfte das Beispiel noch mit TStrings funktionieren, aber wie gesagt besser TStringList.
Markus Kinzler
  Mit Zitat antworten Zitat
raiguen
(Gast)

n/a Beiträge
 
#7

Re: TStrings definieren

  Alt 16. Feb 2007, 09:08
Zitat von mkinzler:
Zitat:
Obwohl test vom Typ TStrings ist, muss das Createn anders erfolen (BTW: TString selbt kennt keine Methode .Create)
Doch, da der Konstruktor von TObject geerbt ist. Imho dürfte das Beispiel noch mit TStrings funktionieren, aber wie gesagt besser TStringList.
Mag schon sein, dass .Create vererbt wird; aber dennoch wird das Beispiel NICHT funktionieren, weil - wie ich bereits erwähnt habe - spätestens hier -> test.Add() <-- der 'Abstrakte Fehler' erscheint! Also von daher ist es schon korrekt (und so sagt es ja auch die OH), TStringList zu verwenden.
  Mit Zitat antworten Zitat
16. Feb 2007, 09:09
Dieses Thema wurde von "SirThornberry" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
fapsons

Registriert seit: 29. Jan 2007
Ort: Berlin
65 Beiträge
 
#9

Re: TStrings definieren

  Alt 16. Feb 2007, 09:57
Vielen Dank.
Ihr habt mir erstmal sehr weitergeholfen.
Brauchte zwar zwingend einen TString und keinen TStringList,
habe es aber Dank eurer Hilfe trotzdem hinbekommen...

Gruß,
Oli
  Mit Zitat antworten Zitat
Benutzerbild von TonyR
TonyR

Registriert seit: 17. Jun 2006
Ort: Bautzen
503 Beiträge
 
FreePascal / Lazarus
 
#10

Re: TStrings definieren

  Alt 16. Feb 2007, 10:03
Zitat von fapsons:
Brauchte zwar zwingend einen TString und keinen TStringList,
Wieso denn??? Wenn du irgendeinem Objekt TStrings zuweisen möchtest kannst du auch einfach die StringList nehmen, da gibts doch dann keinen Unterschied!
Es ist unmöglich, witzig zu sein ohne ein bisschen Bosheit. Die Bosheit eines guten Witzes ist der Widerhaken, der ihn haften lässt. - Georg Christoph Lichtenberg
  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 19:00 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