AGB  ·  Datenschutz  ·  Impressum  







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

Wie geerbte Ereignisse verarbeiten ??

Ein Thema von Net7 · begonnen am 29. Okt 2005 · letzter Beitrag vom 29. Okt 2005
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#1

Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 11:36
Hi Leute,

Ich sitze hier wieder vor einem Problem, bei der Komponentenentwicklung.

Es geht um ein Events von ServerSocket.


So ist dieses äusserlich zu sehen.

Delphi-Quellcode:
procedure TForm1.SocketServer1ClientDisconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
end;
Wie kann ich dieses Event innerhalb der Komponente abfragen, ob dieses aufgetreten ist??

Für Tipps wäre ich sehr dankbar.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#2

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 11:38
OnClientDisconnect überschreiben und im Event deinen Code inkl. inherited?

Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 11:41
es gibt die Methode:
procedure ClientDisconnect(Socket: TCustomWinSOcket); dynamic; Diese einfach überschreiben.

@DustSigns: Ein Event kann man nicht überschreiben.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Dust Signs

Registriert seit: 28. Dez 2004
Ort: Salzburg
379 Beiträge
 
#4

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 11:47
Zitat von SirThornberry:
@DustSigns: Ein Event kann man nicht überschreiben.
Echt Upsi Wieso eigentlich nicht? Ich mein, ich hab's noch nie versucht, weil es nie notwendig war, aber ich würd trotzdem gern wissen warum

Delphi-Quellcode:
procedure OnBla(Blub: TBlub); override;
{..}
procedure TMuh.OnBla(Blub: TBlub);
begin
  inherited;
  {..}
end;
Dust Signs
(aka AXMD in der EE)
Die Nummer, die Sie gewählt haben, ist imaginär. Bitte drehen Sie Ihr Telefon um 90° und versuchen Sie es erneut.
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#5

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 11:58
Hmm.....

Zitat:

procedure ClientDisconnect(Socket: TCustomWinSOcket); dynamic;

Irgendwie stehe ich aufn schlauch

Wird denn diese Procedure aufgerufen wenn es ein Disconnect gibt??

Ich will doch auch nix überschreiben das Event soll ja bleiben so wie es ist.
Ich möchte kein neues Basteln. Ich möchte nur innerhalb der Kompo wissen ob es auftritt.


Oder bin ich aufm Holzweg.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 12:04
Zitat von Dust Signs:
Wieso eigentlich nicht?
OnDisconnect ist ja nur eine Property für FOnDisconnect. Da müsstest du schon eine Variable überschreiben können (bzw. die Compiler-Magic, die hinter den Methodenzeigern steckt) .

@Net7: Der Weg ist der richtige. ClientDisconnect ist der sog. Event-Dispatcher von OnDisconnect. Wenn die Komponente das Event auslösen will, wird sie immer ClientDisconnect aufrufen.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#7

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 12:41
Zitat von Khabarakh:
@Net7: Der Weg ist der richtige. ClientDisconnect ist der sog. Event-Dispatcher von OnDisconnect. Wenn die Komponente das Event auslösen will, wird sie immer ClientDisconnect aufrufen.
Die Procedure
Delphi-Quellcode:
procedure ClientDisconnect(Socket: TCustomWinSOcket);
begin
       ...schreib log.. //um zu sehen ob sie angesprungen wurde
end;
wird aber kommischerweise nicht aufgerufen innerhalb der Kompo wenn der Client disconnect.

Mach ich was falsch oder verstehe ich was nicht
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 12:45
@Net7: Hast du die Methode nur neu declariert oder überschrieben? (eventuell Override vergessen)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 12:52
Checkliste:
  • Du musst eine Klasse von TServerSocket ableiten.
  • In dieser musst du ClientDisconnect überschreiben. Also eine Methode mit gleichem Namen, gleicher Signatur (gleiche Sichtbarkeit ist auch nie falsch) und der Direktive override;.
  • In dieser solltest du unbedingt inherited; aufrufen. Aber auch ohne sollte dein Code aufgerufen werden.
  • Du musst deine Klasse verwenden. Also nicht einfach einen ServerSocket aus der Tool-Leiste auf die Form ziehen, das funktioniert sicher nicht . Entweder du erstellst deinen neuen Socket zur Laufzeit oder registrierst ihn auch als Komponente.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Benutzerbild von Net7
Net7

Registriert seit: 22. Jun 2004
Ort: Lauenburg
161 Beiträge
 
Delphi 7 Professional
 
#10

Re: Wie geerbte Ereignisse verarbeiten ??

  Alt 29. Okt 2005, 12:54
Zitat von SirThornberry:
@Net7: Hast du die Methode nur neu declariert oder überschrieben? (eventuell Override vergessen)

Ich erweitere die Klasse TServerSocket um ein parr Funktionen und Proceduren

Die Urklasse ist halt TServersockt. Damit ich zb. bestimmte Proceduren aufrufen kann, muss ich zb. Wissen ob Onclientdisconect der UrKlasse aufgetreten ist.
Marko
So`ne Atombombe kann einem den ganzen Tag verderben!
Eine eigene DLL in C++ geschrieben wird meist ein Sklave für mein Delphi/Pascal.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 11:01 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