![]() |
TIdTCPServer zur laufzeit erstellen
Hi ihrs!
Weiß jemand wie ich das hinbekomme??? (Ohne ein Forumlar)
Delphi-Quellcode:
soweit komm ich ja noch aber wenn ich dann auch will, dass was passiert, wenn der Server was empfängt:
var
IdTCPServer1: TIdTCPServer; begin IdTCPServer1:=TIdTCPServer.Create(nil); with IdTCPServer1 do begin DefaultPort:=1234; Active:=true; end; end.
Delphi-Quellcode:
Spielt Borland nicht mehr mit!
var
IdTCPServer1: TIdTCPServer; procedure IdTCPServer1Execute(AThread: TIdPeerThread); begin // end; begin IdTCPServer1:=TIdTCPServer.Create(nil); with IdTCPServer1 do begin OnExecute:=IdTCPServer1Execute; // Will Borland nicht! DefaultPort:=1234; Active:=true; end; end. Kennt jemand ne lösung??? Vielen Dank schon mal! |
Re: TIdTCPServer zur laufzeit erstellen
Du brauchst dafür was vom Typ:
Delphi-Quellcode:
also ne Methode von einem Objekt.
TIdServerThreadEvent = procedure (AThread: TIdPeerThread) of object;
|
Re: TIdTCPServer zur laufzeit erstellen
und wie bekomm ich das ohne ein Formular hin???
|
Re: TIdTCPServer zur laufzeit erstellen
das dürfte nicht gehen, da ein idtcpserver ein parent braucht!
|
Re: TIdTCPServer zur laufzeit erstellen
ähm
geht doch viel einfacher ?! mach mal n form und da druff einen idtcpserver und dann doppelklicke im onexecute ereignis und dann macht er ja eine funktion oder procedure dann kopierste einfach dieses gerüst und oben natürlich in der deklaration auch den teil dafür und den benutzt du dann in deinem formlosen projekt. als parent ( owner ) nimmste einfach mal self oder nil.. probier mal rum oder wenns ein windows service wird nimmste den namen des services geht glaub auch.. jedenfalls gehts ! hab grad keine zeit zum testen wie genau |
Re: TIdTCPServer zur laufzeit erstellen
Also seit ihr alle der Meinung, dass nicht druherumkomme ein Formular/Service zu benutzen???
Kann doch nicht sein! Irgendwie muss es doch auch ohne gehen! |
Re: TIdTCPServer zur laufzeit erstellen
Das hab ich nicht gesagt, und supermuckl meint glaubig das gleiche. Du brauchst nur eine Klasse, z.B. mit folgendem ungetestetem Code:
Delphi-Quellcode:
[edit]
type
TFoo = class(TObject) procedure Bar(Sender: TObject); end; procedure TFoo.Bar(AThread: TIdPeerThread); begin // Blah end; var IdTCPServer1: TIdTCPServer; Foo: TFoo; begin IdTCPServer1 := TIdTCPServer.Create(nil); Foo := TFoo.Create(); try with IdTCPServer1 do begin OnExecute:=Foo.Bar; DefaultPort:=1234; Active:=true; end; finally Foo.Free; IdTCPServer1.Free; end; end. Man könnte natürlich auch einfach die Indy Klasse ableiten... [/edit] |
Re: TIdTCPServer zur laufzeit erstellen
Hi,
warum kompliziert, wenn's auch einfach geht :
Code:
Gruß Data
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } procedure myExecute(AThread: TIdPeerThread); public { Public-Deklarationen } end; var Form1: TForm1; implementation var IdTCPSvr : TIdTCPServer; {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); begin IdTCPSvr := TIdTCPServer.Create(nil); IdTCPSvr.DefaultPort := 1234; IdTCPSvr.OnExecute := myExecute; IdTCPSvr.Active := true; end; procedure TForm1.myExecute(AThread: TIdPeerThread); begin // hier Den Execute-Code einfügen end; end. |
Re: TIdTCPServer zur laufzeit erstellen
@DataCool: Er wollte kein Formular - und nen object zu erstellen wo man das reinpackt ist ja nicht wirklich kompliziert
|
Re: TIdTCPServer zur laufzeit erstellen
@SirThornberry:
Ob mit oder ohne Formular, die Verwendung ist die gleiche !! Der IdTcpServer wird hier zur Laufzeit erstellt und sitzt nicht auf der Form ! Gruß Data |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:31 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