AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Sendevorgang blockiert meine Software
Thema durchsuchen
Ansicht
Themen-Optionen

Sendevorgang blockiert meine Software

Offene Frage von "skyquaker"
Ein Thema von skyquaker · begonnen am 25. Feb 2007 · letzter Beitrag vom 27. Feb 2007
 
skyquaker

Registriert seit: 14. Sep 2006
96 Beiträge
 
Delphi 7 Professional
 
#10

Re: Sendevorgang blockiert meine Software

  Alt 27. Feb 2007, 15:01
Delphi-Quellcode:
unit MailThread;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Controls,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdMessageClient, IdSMTP, StdCtrls, IdIOHandler, IdIOHandlerSocket,
  IdSSLOpenSSL, IdMessage, ComCtrls;

type
  TMailThread = class(TThread)
  private

    procedure MailProc(mail: TIdMessage; path: String; SMTP: TIdSmtp;globalcnt: Integer);
  protected

    procedure Execute(); override;
  public
    constructor Create (CreateSuspended: Boolean; mail: TIdMessage; path: String; SMTP: TIdSmtp;globalcnt: Integer);overload;
  end;

implementation

uses
  atfiles;


var EMail: TIdMessage;
    fPath: String;
    SMTP1: TIdSMTP;
    cnt: Integer;

constructor TMailThread.Create (CreateSuspended : boolean ;mail: TIdMessage; path: String; SMTP: TIdSmtp;globalcnt: Integer) ;
begin
     inherited Create (CreateSuspended) ;
     {Email.Create(nil);}
     {SMTP1.create(nil);}
Email:= TIdMessage.create(Form1);
Smtp1 := TIdSMTP.create(Form1);
  EMail:= mail;
  fPath:= path;
  SMTP1:= SMTP;
  cnt:= globalcnt;
end ;

procedure TMailThread.Execute;
begin
  MailProc(Email, fPath, SMTP1, cnt);
end;

procedure TMailThread.MailProc;
var i: Integer;
begin

for i := 1 to globalcnt -1 do
begin
 if FileExists('./temporary/'+ExtractFileName(path)+'_'+Inttostr(i)) then
    TIdAttachment.Create(mail.MessageParts, './temporary/'+ExtractFileName(path)+'_'+Inttostr(i));
 Mail.Subject := ExtractFileName(path)+'_'+Inttostr(i);
 smtp.Connect;

   try
   smtp.Send(mail);
   smtp.Disconnect;
   finally
   Mail.MessageParts.Clear;
end;
end;



end;

end.
Das ist jetzt meine ThreadUnit, wie binde ich die ein und rufe sie auf? (Das Tutorial hilft mir irgendwie nicht weiter)

EDIT: Ich hab mal versucht es einfach als Procedure aufzurufen (glaub aber das ist total falsch)[kompilieren lässts sich aber]:
TMailThread.Create(true,Email,Opendiag.filename,globalcnt); Außerdem gibt das immer einen Runtime Error, wenn ich .Create(nil) mache, deshalb hab ich das jetzt zu Email:= TIdMessage.create(Form1);
  Mit Zitat antworten Zitat
 


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 00:56 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