AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Ich glaub ich bin bl... [TMEMO und TStrings]

Ein Thema von NeoXan · begonnen am 27. Aug 2004 · letzter Beitrag vom 27. Aug 2004
Antwort Antwort
NeoXan
(Gast)

n/a Beiträge
 
#1

Ich glaub ich bin bl... [TMEMO und TStrings]

  Alt 27. Aug 2004, 13:18
Kann mir mal jemand verranten weshalb das hier nicht klappt?

Delphi-Quellcode:
var s: TStrings;
begin
 s := Memo1.Lines;
 Memo1.Lines := s;
end;
Das Memo ist danach leer...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Ich glaub ich bin bl... [TMEMO und TStrings]

  Alt 27. Aug 2004, 13:23
Erstmal erzeugst du keine Instanz von s:
s := TStrings.Create; Dann weißt du s den Inhalt eines Memos zu. ist selbiges eventuell leer?

Dann weißt du s dem Memo zu. Da du aber keine Instanz von s erstellt hast, kann es gar keine Daten enthalten. Dass es nicht knallt ist wohl reibe Glückssache.

Und zu guterletzt: TStrings ist eine Basisklasse mit abstrakten, also noch nicht implementieerten Methoden. Nutze für dein Vorhaben die Klasse TStringlist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
NeoXan
(Gast)

n/a Beiträge
 
#3

Re: Ich glaub ich bin bl... [TMEMO und TStrings]

  Alt 27. Aug 2004, 13:40
Ok, auch mit erstellter Instanz klappt es nicht. Das Memo ist definitiv gefüllt.

Wie mache ich die Zuweisung denn mit Stringlist?
Das eigentlich prob ist nämlich folgendes:

Delphi-Quellcode:
procedure DelLast(var Strs: TStrings);
var i,j,k : integer;
begin
 for i := 0 to Strs.Count-1 do
  begin
   if AnsiStartsStr('<TD>',Strs[i]) then
      begin
       for j := -1 to 8 do
         Strs.Delete(i);
       break;
      end;
  end;
end;

var s: TStrings;
begin
 s := TStrings.Create;
 s := Memo1.Lines;
 DelLast(s);
 Memo1.Lines := s;
end;
Das Memo wollt' ich nicht als Parameter übergeben, da ich in der späteren Version mehr oder weniger ohne VCL arbeiten wollte.
  Mit Zitat antworten Zitat
Benutzerbild von Sanchez
Sanchez

Registriert seit: 24. Apr 2003
Ort: Neumarkt Stmk
892 Beiträge
 
Delphi XE6 Enterprise
 
#4

Re: Ich glaub ich bin bl... [TMEMO und TStrings]

  Alt 27. Aug 2004, 13:42
Hallo,

Stringlisten kannst du mit Assign zuweisen.
Also so:
Delphi-Quellcode:
var s: TStrings;
begin
 s := TStrings.Create;
 s.Assign(Memo1.Lines);
 DelLast(s);
 Memo1.Lines.Assign(s);
end;
grüße, daniel
Daniel
Testen ist feige!
  Mit Zitat antworten Zitat
NeoXan
(Gast)

n/a Beiträge
 
#5

Re: Ich glaub ich bin bl... [TMEMO und TStrings]

  Alt 27. Aug 2004, 13:43
oh...es klappt, wenn ich die letzte Zuweisung weglasse
Vielen Dank...
  Mit Zitat antworten Zitat
Golze

Registriert seit: 26. Aug 2004
Ort: Berlin
32 Beiträge
 
Delphi 5 Enterprise
 
#6

Re: Ich glaub ich bin bl... [TMEMO und TStrings]

  Alt 27. Aug 2004, 17:55
Hallo zusammen,
habe gerade mal so aus Interesse dein Problem mit den Lösungen gelesen. Ich denke es ist noch einfacher. Die Erklärung, warum deine Zuweisung nicht klappt ist ok. Hier die einfache Lösung:

Dein Problem war ....
var s: TStrings;
begin
s := Memo1.Lines;
Memo1.Lines := s;
end;

Die Lösung:
var s: TStrings;
begin
s := TStrings.Create;
s.AddStrings(Memo1.Lines);
Memo1.Lines.AddStrings(s);
....
s.Free;

Du kannst TStrings genauso nutzen wie TStringList. Mann sollte jedoch TStringList immer der anderen Klasse vorziehen. Wichtiger wie die Klasse ist die Eigenschaft AddStrings. Assign ist gut, aber nicht optimal (wie du ja selbst gesehen hast).

Grüße
Kay
Kay Golze
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 07:38 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