![]() |
Problem mit TStringlist und String
hi,
ich möchte einen String der über 2 (oder mehr) Zeilen geht in eine Stringlist schreiben. Das tue ich weil ich diese Stringlist später an eine SMTP Komponente übergeben muss (SMTP.ToAddress) welche nur Stringlisten akzeptiert. Den String der in die Stringlist soll ziehe ich mir aus einem Registryeintrag heraus. Dort stehen als Test zwei Email Adressen die durch Returns getrennt sind. Wenn ich die in einen String auslese und den per Showmessage anzeige zeigt der mir auch brav die erste Adresse in der ersten Zeile und die zweite in der zweiten Zeile. Aber sobald ich den String dann in eine Stringlist schreiben will zerlegt es mein Programm. Weiss hier einer Rat? mfg |
Re: Problem mit TStringlist und String
Stringlist ist überhaupt erzeugt?
An dieser Stelle wäre ein wenig Code sinnvoll, damit wir sehen können, was du gemacht hast. |
Re: Problem mit TStringlist und String
Delphi-Quellcode:
// ########## Werte aus der Registry auslesen ##################################
procedure TForm1.Auslesen; var regist: TRegistry; i: WideChar; begin regist := TRegistry.Create; regist.RootKey := HKEY_LOCAL_MACHINE; if regist.OpenKey('SOFTWARE\MES', true) = true then for i := 'A' to 'Z' do Buchstabe := i; Mail := regist.ReadString(Buchstabe + 'eMail'); Wiederholungen := regist.ReadInteger(Buchstabe + 'Anzahl'); {try Kopieren; // Testdatei wird kopiert Except EMail; End;} regist.Free; end; // ########## Verbindung zum Host herstellen ################################### procedure TForm1.Button1Click(Sender: TObject); var ToAddressList: TStringList; begin button1.Enabled := false; Auslesen; smtp.PostMessage.Date := DateToStr(date()); ToAddressList.Clear; ToAddressList.Text := Mail; smtp.PostMessage.ToAddress.AddStrings(ToAddressList); if pop.Connected = true then pop.Disconnect else begin try pop.Connect; except showmessage('Keine Verbindung zu POP!'); end; end; if smtp.Connected = true then smtp.disconnect else begin try smtp.Connect; except showmessage('Keine Verbindung zu SMTP!'); end; end; end; // ########## Nachricht absenden sofern Verbindung besteht ##################### procedure TForm1.smtpConnect(Sender: TObject); begin try smtp.SendMail; except showmessage('Senden der Mail fehlgeschlagen!'); end; button1.Enabled := true; try smtp.Disconnect; except showmessage('Konnte nicht von SMTP trennen!'); end; try pop.Disconnect; except showmessage('Konnte von POP nicht trennen!'); end; end; |
Re: Problem mit TStringlist und String
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var ToAddressList: TStringList; begin button1.Enabled := false; Auslesen; smtp.PostMessage.Date := DateToStr(date()); ToAddressList := TStringList.Create <<<< Erzeugen ToAddressList.Clear; ToAddressList.Text := Mail; ... ToAddressList.Free; <<<< Freigeben wobei sollte eigentlich auch so gehn :
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin button1.Enabled := false; Auslesen; smtp.PostMessage.Date := DateToStr(date()); smtp.PostMessage.ToAddress.Text := Mail; ... |
Re: Problem mit TStringlist und String
ich habe mal beide varianten ausprobiert und bekomme in beiden fällen eine zugriffsverletzung.
es bleibt fehlertechnisch gesehn also leider alles beim alten... :( |
Re: Problem mit TStringlist und String
Herzlich willkommen in der Delphi-PRAXiS, Timo.
Du solltest die genaue Stelle im aktuellen QuellCode bezeichnen, an der die Zugriffsverletzung auftritt. Von der Strukturierung her geurteilt fehlt in deiner Prozedur Auslesen ein BEGIN-END Codeblock für die FOR-Schleife. Ohne macht das so keinen Sinn. Außerdem würde ich die gefundenen Mail-Adressen gleich dort in die Liste einbauen. Freundliche Grüße |
Re: Problem mit TStringlist und String
problem gelöst es läuft nun so wie es sein soll :-D
besten dank für die hinweise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:04 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