Autor Beitrag
RFZ
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 137

WinME, WinXP, Win2k*, Win98*, Win95*, Win3.11*, DOS* (*VMware)
D4 Prof
BeitragVerfasst: Mo 30.12.02 14:28 
Moin,
da ich die TNMHTTP Komponente hasse, will ich mir ne eigene machen, abgeleitet von TClientSocket.
Ich kenn mich da nicht viel aus, wie man eigene Prozeduren hinzufügt weiss ich, mehr nicht :)
Jetzt will ich das OnRead Ereignis irgendwie so bearbeiten, dass es der Eigenschaft Header und Body die empfangenen Strings zuweist, und dann mein eigenes Ereignis OnSuccess auslöst. OnRead kann öfter durchlaufen bevor OnSucces ausgelöst werden soll, da die Server die Website in 2 Teilen senden, OnSuccess könnte dann ähnlich wie OnDisconnect sein, ich hoffe ihr versteht was ich meine :)
Also, wie überschreibe ich OnRead, und wie erstelle ich mein eigenes Ereignis?
Danke, und gutn Rutsch!

cu RFZ
Dev4u.ch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 36



BeitragVerfasst: Mo 30.12.02 15:07 
also als Alternative zu der TNMHTTP gäbe es noch indy..

hier die URL
www.nevrona.com/indy/

gruss

_________________
Jedes Programm wurde von einem Menschen gecodet - Menschen machen nun mal Fehler!!
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 30.12.02 15:08 
Hallo,

Deine Frage ist also
RFZ hat folgendes geschrieben:
wie überschreibe ich OnRead, und wie erstelle ich mein eigenes Ereignis?

Zum ersten:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure OnRead ({Parameter});  override;

{...}

procedure tMyComp.OnRead ({Parameter});  
begin
  inherited;

  {...}
end;


Zum zweiten:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
Type
  tOnMyEvent = Procedure ({Parameter}) of object;

  tMyComp = Class (tClientSocket)
    private
      fOnMyEvent: tOnMyEvent;
    published
      property OnMyEvent: tOnMyEvent read fOnMyEvent write fOnMyEvent;
  End;

Und wenn Du das Event nun Aufrufen möchtest:
ausblenden Quelltext
1:
2:
If Assigned (fOnMyEvent) then
  fOnMyEvent ({Parameter});

Gruß
TINO


Zuletzt bearbeitet von Tino am Mo 30.12.02 15:10, insgesamt 2-mal bearbeitet
RFZ Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 137

WinME, WinXP, Win2k*, Win98*, Win95*, Win3.11*, DOS* (*VMware)
D4 Prof
BeitragVerfasst: Mo 30.12.02 15:09 
Ich will aber ne eigene :P
Soll ja auch nen Lerneffekt haben.

cu RFZ
RFZ Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 137

WinME, WinXP, Win2k*, Win98*, Win95*, Win3.11*, DOS* (*VMware)
D4 Prof
BeitragVerfasst: Mo 30.12.02 15:15 
@Tino
So?
ausblenden Quelltext
1:
procedure OnRead(Sender: TObject; Socket: TCustomWinSocket); override;					


[Fehler] HTTPClient.pas(25): Eine statische Methode kann nicht überschrieben werden

Scheint nicht zu funktionieren... Ausserdem dachte ich muss man bei OnDings die Prozedur Dings überschreiben... bei OnClick ist's jedenfalls Click...

cu RFZ
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mo 30.12.02 18:10 
Hi,

handelt es sich bei OnRead um ein Event (also um eine Eigenschaft) oder um eine Methode? Letzendlich kannst du natürlich nur eine Methode überschreiben und diese muss dann auch als Virtual definiert sein. Ein Event kannst Du nicht überschreiben.

RFZ hat folgendes geschrieben:
Ausserdem dachte ich muss man bei OnDings die Prozedur Dings überschreiben... bei OnClick ist's jedenfalls Click...

Das muss nicht immer so sein. Letztendlich kannst Du nun mal kein Event überschreiben. Damit Du dennoch auf so ein Event in Deiner abgeleiteten Klasse reagieren kannst gibt es meistens eine Methode die (fast) nichts anderes macht als zum Beispiel das OnClick Event aufzurufen. Diese Methode ist meistens als Virtual definiert damit man diese dann in abgeleiteten Klassen überschreiben kann.

Gruß
TINO
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 30.12.02 18:31 
Hi!

Nur so neben bei: Ein Event ist doch meist nach aussen als Property ansprechbar? Properties wiederum können überschrieben werden...

Cu,
Udontknow