AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Events in Pascal Projekt?

Ein Thema von cchris · begonnen am 1. Nov 2007 · letzter Beitrag vom 2. Nov 2007
Antwort Antwort
Benutzerbild von cchris
cchris

Registriert seit: 16. Jun 2003
Ort: Taucha
71 Beiträge
 
Delphi 2005 Personal
 
#1

Events in Pascal Projekt?

  Alt 1. Nov 2007, 22:32
Hi,

ich würde gerne einen kleinen SMTP Daemon mit Indys schreiben, das ganze soll ohne Form laufen, daher hab ich ein Pascal Projekt erstellt, also soll ne Konsolenanwendung werden...
Das ganze sieht bis jetzt so aus:
Code:
var Socket:TIdSMTPServer;

procedure LoginEvent(ASender: TIdSMTPServerContext; const AUsername, APassword: string; var VAuthenticated: Boolean);
begin
writeln(AUsername);
writeln(APassword);
end;

procedure ConnectEvent (AContext:TIdSMTPServerContext);
begin
writeln('Connection coming in...');
end;

begin
Socket:=TIdSMTPServer.Create;
Socket.DefaultPort:=25;
Socket.ServerName:='********';
Socket.OnUserLogin:= @LoginEvent;
Socket.OnConnect:= @ConnectEvent;
Socket.Active := true;
repeat
Application.ProcessMessages;
until keypressed;
end.
2 Probleme: Erstens, das mit dem Events registrieren funktioniert noch net, ich soll net nen Prozedurzeiger übergeben sondern ne Prozedurvariable, wie mach ich das? Und 2. Problem, das was ich aus der Programmierung mit Forms kenne mit Application.ProcessMessages funzt auch net, da Application gar net da ist, muss ich dafür noch ne zusätzliche Unit einbinden oder einfach noch Application:TApplication; Application:=TApplication.Create; hin schreiben?

cYa cchris

ps: hoffe das ist das richtige forum
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Events in Pascal Projekt?

  Alt 1. Nov 2007, 22:37
Eventbehandlungsroutinen müssen Methoden sin.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von cchris
cchris

Registriert seit: 16. Jun 2003
Ort: Taucha
71 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Events in Pascal Projekt?

  Alt 1. Nov 2007, 23:02
soll ich dann dadraus
Code:
type mysocket = class(TIdSMTPServer)
    procedure ConnectEvent (AContext:TIdSMTPServerContext);
    end;
var Socket:mysocket;
Oder wie? Weil normalerweise werden ja standartmäßig alle Events auf Methoden des Formulars gelenkt...
Wenn jemand da mal nur nen gaanz kurzen Code-Schnipsel schreiben könnte, wie er für das Event OnConnect (Prozedurparamter stimmen so wie ich sie hab) nen Event erstellt und registriert, dann wär ich ihm äußerst dankbar, weil ich das bis jetzt noch nie gemacht hab.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Events in Pascal Projekt?

  Alt 1. Nov 2007, 23:03
Es kann aber jede beliebige Klasse sein.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von cchris
cchris

Registriert seit: 16. Jun 2003
Ort: Taucha
71 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Events in Pascal Projekt?

  Alt 1. Nov 2007, 23:11
hab jetzt erstmal das gemacht:
[code]type
mySocket=class(TIdSMTPServer)
procedure ConnectEvent (AContext:TIdSMTPServerContext);
end;

var
Socket:mysocket;

procedure mySocket.ConnectEvent(AContext:TIdSMTPServerContex t);
begin
writeln('Connected...');
end;[code]

Aber was schreib ich jetzt bei Socket.OnConnect:= dahinter? Weil wenn ich einfach die Prozedur normal dahinter schreibe, dann wird sie ja normal ausgeführt, oder

Sry, bin etwas verwirrt....
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Events in Pascal Projekt?

  Alt 1. Nov 2007, 23:13
Self.ConnectEvent;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von cchris
cchris

Registriert seit: 16. Jun 2003
Ort: Taucha
71 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Events in Pascal Projekt?

  Alt 1. Nov 2007, 23:23
hab jetzt:
Code:
type
   mySocket=class(TIdSMTPServer)
      procedure ConnectEvent (AContext:TIdSMTPServerContext);
   end;

var
   Socket:mysocket;

procedure mySocket.ConnectEvent(AContext:TIdSMTPServerContext);
begin
writeln('Connected...');
end;

begin
Socket:=mysocket.Create;
Socket.DefaultPort:=25;
Socket.ServerName:='...';
Socket.OnConnect:= Self.ConnectEvent;
Socket.Active := true;
...
end.
Das ganze wird quittiert mit: "Error: Identifier not found "Self""
Iwas mach ich da wohl verkehrt...

Das Self. durch Socket. oder MySocket. zu ersetzen bringt auch nichts, dann meckert der Compiler, dass die Anzahl der Parameter nicht stimmt...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Events in Pascal Projekt?

  Alt 2. Nov 2007, 06:35
Außerhalb der Klasse:
Socket.OnConnect:= Socket.ConnectEvent;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von cchris
cchris

Registriert seit: 16. Jun 2003
Ort: Taucha
71 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Events in Pascal Projekt?

  Alt 2. Nov 2007, 15:46
Wie gesagt, das geht auch nicht, wenn ich das versuche (was ich schon hatte ) dann kommt die Meldung, dass nicht genügend Parameter angegeben seien, aber ich will ja die Methode net sofort ausführen sondern blos "binden"...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Events in Pascal Projekt?

  Alt 2. Nov 2007, 16:01
Versuch es mal mit einer Hilfs(-Event-)Klasse
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


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 09:13 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