![]() |
Memo in Stringlist umwandeln
Wie bekomme aus der Memo eine TStringList?
Delphi-Quellcode:
procedure TFVorschau.BitBtn2Click(Sender: TObject);
begin UIni.FIni.SaveIni(MVorschau.{Und was jetzt}); close; end;
Delphi-Quellcode:
Und TStrings funzt deswegen nicht:
procedure TFIni.SaveIni(Text : TStringList);
begin if SDSave.Execute then Text.SaveToFile(SDSave.FileName); end;
Delphi-Quellcode:
Gibts eine Funktion, die das umwandelt?
procedure TFIni.SpeichernEinleiten(Sender: TObject);
var Text : TStringList; i, j : Integer; begin Text := TStringList.Create; try { Text erstellen } // Nach Sections sortieren for i := 0 to High(SectionNames) do begin // Section setzen Text.Add(SectionNames[i]); for j := 0 to High(SeItVaValues) do // Gehört das Item zur Section? if SeItVaValues[j][0] = SectionNames[i] then // Items & Values werden zusammengestellt Text.Add(SeItVaValues[j][1] + '=' + SeItVaValues[j][2]); end; if ShowVorschau.Checked then UVorschau.FVorschau.Show(Text) else SaveIni(Text); finally Text.Free; end; end; |
Re: Memo in Stringlist umwandeln
Hallo,
deklariere deine Variable Text als TStrings und weise ihr die TStringList-Instanz zu. SaveIni sollte dann natürlich auch einen TStrings-Parameter erhalten. Schon klappt das mit TMemo.Lines. :wink: Gruß Hawkeye |
Re: Memo in Stringlist umwandeln
Ähm... welches Text?
Delphi-Quellcode:
so?
procedure TFIni.SaveIni(Text : TStrings);
begin if SDSave.Execute then Text.SaveToFile(SDSave.FileName); end; Dann gibst einen fehler mit SpeichernEinleiten! |
Re: Memo in Stringlist umwandeln
Hi!
Welchen Fehler gibt es denn? Ciao Frederic |
Re: Memo in Stringlist umwandeln
Die lokale Variable Text meinte ich natürlich auch...
Gruß Hawkeye |
Re: Memo in Stringlist umwandeln
Wenn ich das mache meint er: Abstracter Fehler! Und auch mit richtiger Intialisierung
Delphi-Quellcode:
Das MVorschau(.Lines) nicht mit dem Übergabeparameter übereinstimmen!
Text := TStrings.Create
Zitat:
|
Re: Memo in Stringlist umwandeln
Sieht der Anfang der Routine auch wirklich so aus?
Delphi-Quellcode:
//Edit:
procedure TFIni.SpeichernEinleiten(Sender: TObject);
var Text : TStrings; // <<--- TStrings! i, j : Integer; begin Text := TStringList.Create; // <<--- TStringList! try und SaveIni so?
Delphi-Quellcode:
procedure TFIni.SaveIni(Text : TStrings); // <<--- TStrings!
begin if SDSave.Execute then Text.SaveToFile(SDSave.FileName); end; |
Re: Memo in Stringlist umwandeln
ja
edit: Meine Stringlisten definiere ich immer als TStrings, sonst funktionieren sie nie. |
Re: Memo in Stringlist umwandeln
Genial Hawkeye!
Ich dachte bisher folgendes:
Delphi-Quellcode:
Nun interessiert es mich noch, warum das so geht, wie du das beschrieben hast?
var <Variable> : <Typenbezeichnung>
{...} <Variable> := <Typenbezeichnung d. Variable>.Create [edit]@ HawkeyeDer Rest war klar! Mich wunderte nur das ich nicht die obige Variante benutzten konnte @ Knogge: Also ich bin bisher mit "reinen" TStringLists ganz gut zurecht gekommen ^^, aber so lange (ca. 4-5 Monate ist das ja nicht :D)[/edit] |
Re: Memo in Stringlist umwandeln
Ich vermute, du hast in einer Parameterliste noch eine "TStringList" benutzt (vielleicht in der Routine UVorschau.FVorschau.Show()?). Die Parameter kannst du eigentlich immer als "TStrings" deklarieren und dann "TStringList"-Instanzen übergeben. Man sollte lediglich keine Instanzen von TStrings erzeugen und benutzen. Das führt dann zu der Meldung "Abstrakter Fehler", weil erst TStringList die abstrakten Methoden überschriebt.
Überprüfe es am besten mal und melde dich, wenn's nicht klappt. Gruß Hawkeye //Edit: oops, jetzt habe ich glatt deinen letzten Beitrag verpaßt :oops: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:35 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