![]() |
Threads für Schleife einbauen
So heute habe ich mal etwas schweres, woran ich scheitere.
Also ich habe ein Programmm, welches Emails verschickt. So jetzt kann ich da mehrere Emails angeben, da ich all meinen Kollegen meine Ergebnisse mitteilen muss. Das macht die Sache natürlich leichter mit meinem Programm. Dazu sei gesagt, das Programm läuft wunderbar. Jetzt hab ich nur das Problem, wenn ich jetzt 10 EMail adressen angebe und auf Senden Klicke, dann hängt sich das Programm auf und ich muss warten bis es fertig geschickt hat. Das ist natürlich sehr unschön. Deswegen habe ich mir gedacht, gut baue ich Threads ein, damit das Programm nicht hängen bleibt und ich mir den Fortschritt in ner Progressbar anzeigen lassen kann. Denn i mom ist es so, das die Progressbar erst ganz leer ist und wenn die Emails gesendet wurden, dann aufeinmal ganz voll ist. Und ich möchte natürlich, das mir der Fortschritt zeitnah angezegt wird. Jetzt würd eich einfach mal gerne wissen wie ich denn jetzt die Schleife einbaue. Das hier ist mein Code:
Delphi-Quellcode:
begin
repeat with idMessage1 do begin Body.Assign(Memo2.Lines); From.Text :=(LabeledEdit1.Text); Subject :=(Edit1.Text); Recipients.EMailAddresses := Memo1.Lines.Strings[i]; if Radiobutton1.Checked = true then Priority:= mpHigh; if Radiobutton1.Checked = true then Priority:= mpNormal; if Radiobutton1.Checked = true then Priority:= mpLow; CCList.EMailAddresses:=''; BCCList.EMailAddresses:=''; end; with idSMTP1 do begin Username:=LabeledEdit1.Text; Password:=Maskedit1.Text; Host:=LabeledEdit3.Text; Port:=25; Connect; Send(idMessage1); Disconnect; end; i := i+1; until i = Memo1.Lines.Count ; end; Wäre euch wirklich sehr dankbar |
Re: Threads für Schleife einbauen
Du brauchst dafür keinen Thread. Gib einfach mehrere EMailadressen als Empfänger an (bcc). Dann muss nur eine EMail zum Relay-Server gesendet werden und dieser kümmert sich dann darum diese an alle Adressaten zu verschicken.
|
Re: Threads für Schleife einbauen
Delphi-Quellcode:
Was soll denn das werden? Sollte da nicht RB1, 2, 3 stehen? Des Weiteren ist ein Vergleich mit "= true" zwar möglich aber in bestimmten Fällen tödlich, warum man das "= true" einfach weglässt. Ist nicht nur weniger Schreibaufwand, sondern auch richtiger. Weitere Infos hier im Forum.
if Radiobutton1.Checked = true then
Priority:= mpHigh; if Radiobutton1.Checked = true then Priority:= mpNormal; if Radiobutton1.Checked = true then Priority:= mpLow; Bernhard |
Re: Threads für Schleife einbauen
Ok hab alles geändert.
Jetzt hab ich nur ein Problem, es sind leide rnicht immer 10 Emails, es sind mal mehr mal weniger. Wie kann ich das denn dann machen, das nur immer die die ich im Memofeld angebe eine bekommen, wenn ich die als bcc angebe?
Delphi-Quellcode:
kann ja nicht funktionieren.
BCCList.EMailAddresses:=Memo1.Lines.Text
Habt ihr vielleicht eine Idee? |
Re: Threads für Schleife einbauen
Delphi-Quellcode:
Wäre eine Idee, aber du bist sehr sparsam mit deinen Infos...
Memo1.Lines.Delimiter := ';'
BCCList.EMailAddresses := Memo1.Lines.DelimitedText; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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