AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi nonVCL Fehler mit OnRead von clientsocket
Thema durchsuchen
Ansicht
Themen-Optionen

nonVCL Fehler mit OnRead von clientsocket

Ein Thema von gandime · begonnen am 19. Aug 2007 · letzter Beitrag vom 19. Aug 2007
Antwort Antwort
gandime
(Gast)

n/a Beiträge
 
#1

nonVCL Fehler mit OnRead von clientsocket

  Alt 19. Aug 2007, 14:45
Hi,
ich versuche die OnRead property von Tclientsocket zum laufen zu bringen mein bisheriger versucht:
Delphi-Quellcode:
type
  clsocket = class
      procedure onread(Sender: TObject; Socket: TCustomWinSocket);
   end;

var
  cl:tclientsocket;

procedure onread(Sender: TObject; Socket: TCustomWinSocket);
var
  s_temp:string;
begin

end;

procedure clsocket.onread(Sender: TObject; Socket: TCustomWinSocket);
begin
  onread(Sender,Socket);
end;

begin
  clsocket.create;
  cl.OnRead:=clsocket.onread;// Fehlermeldung: Inkompatible Typen: 'TSocketNotifyEvent' und 'Procedure'
end.
was mache ich falsch?

mfg
gandime
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: nonVCL Fehler mit OnRead von clientsocket

  Alt 19. Aug 2007, 14:48
Hi,

1. Fehler ist, dass man Objekte nicht mit <varname>.Create erzeugt, sondern mit <varname> := <Klassenname>.Create, also bei Dir:

cl := clsocket.Create 2. Schau Dir in den Sourcen mal die OnRead-Procedure an, genau so muss Du diese auch implementieren.
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#3

Re: nonVCL Fehler mit OnRead von clientsocket

  Alt 19. Aug 2007, 14:57
also das funktioniert auch nicht:
cl := clsocket.Create fehlermeldung:
Zitat:
Inkompatible Typen: 'TClientSocket' und 'clsocket'
im source bin ich dann auf folgenden gestoßen und wie baue ich das jetzt richtig ein?
TSocketNotifyEvent = procedure (Sender: TObject; Socket: TCustomWinSocket) of object;
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: nonVCL Fehler mit OnRead von clientsocket

  Alt 19. Aug 2007, 15:24
Zitat von gandime:
also das funktioniert auch nicht:
cl := clsocket.Create fehlermeldung:
Zitat:
Inkompatible Typen: 'TClientSocket' und 'clsocket'
Ist doch vollkommen richtig. Du hast 2 Klassen: TClientSocket und clsocket. Du brauchst von beiden die Instanz und die willst du beide in eine Variable packen?

Also: Wo legst du die Instanz von TClientSocket ab? Grundlegend würde sich ja die Variable cl eignen, da sie schon den richtigen Typ hat. Dann bleibt noch die Frage wo du die Instanz von clsocket ablegen willst.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: nonVCL Fehler mit OnRead von clientsocket

  Alt 19. Aug 2007, 15:32
1. Wieso nonVCL?

2. Wenn ich das richtig verstehe, willst du einfach nur das Ereignis OnRead einer Methode zuweisen.
Dazu brauchst du irgendeine Klasse (die sicherlich noch mehr machen wird als nur OnRead) und setzt die property von onRead auf eine Methode mit der entspr. Deklaration:
Delphi-Quellcode:
type TSampleClass=class
        constructor create;
        destructor destroy; override;
        procedure DoOnread(Sender: TObject; Socket: TCustomWinSocket);
       private
        clientSocket:Tclientsocket;
end;

//...
constructor TSampleClass.create;
begin
  inherited;
  clientsocket:=Tclientsocket.create;
  clientsocket.OnRead:=DoOnRead;
end;
destructor TSampleClass.Destroy;
begin
  clientsocket.free;
end;

procedure TSampleClass.Doonread(Sender: TObject; Socket: TCustomWinSocket);
begin
   // hier kannst du jetzt das Ereignis handhaben
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#6

Re: nonVCL Fehler mit OnRead von clientsocket

  Alt 19. Aug 2007, 16:18
danke
  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 14:50 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