Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi OnExecute selbst aufrufen (https://www.delphipraxis.net/31498-onexecute-selbst-aufrufen.html)

Kalle_XXXX 10. Okt 2004 13:36


OnExecute selbst aufrufen
 
Na moin!
Ich benutze Delphi8 for .Net!
Normalerweise kenn ich es von Delphi5 das man die Indys gleich in einer KomponentenBox hat. Beim 8er ist das leider nicht mehr so, also hab ich alles manuell eingebunden.
Hab nun auch schon ein Objekt des Typs idTCPServer, das ich erstelle und auch schon Eigenschaften zugewiesen bekommt.
Da diese Komponente nun aber leider nicht auf dem Layout sichtbar ist. Kann ich kein Event vie Doppelklick auf eine Ereignis definieren.
Wie kann ich es mir ermöglichen das OnExecute- event des Servers zu definieren und zu erweitern?
Hab mir zwar den Gesamten Code angeschaut der angelegt wird, wenn man eine StandardComponente anlegt, aber was nützliches gefunden hab ich leider nicht.
Schon mal danke für jeden Thread

omata 10. Okt 2004 14:09

Re: OnExecute selbst aufrufen
 
Moin,

also vestehe ich das richtig, dass du die Indy-Units einfach eingebunden hast?

Versuch doch mal das Package der Indy-Komponenten hinzufügen, dann hast du auch wieder einen Reiter in der Komponentenliste.
Unter Delphi7 heißt die Packagedatei: dclindy70.bpl musste also unter Delphi8 dclindy80.bpl heißen such doch einfach mal noch dieser Datei (oder schau mal in das Delphi8\bin-Verzeichnis).

Dann kannst du die Komponente so nutzen, wie immer.

Die andere Alternative ist die, die du schon angewendet hast.
Die Ereignisse musst du dann aber selber zuweisen (im FormCreate)

Delphi-Quellcode:
  IdTCPServer.OnExecute:=IdTCPServerExecute;
die Ereignisprozedur musst du dann selber anlegen...

Delphi-Quellcode:
procedure TForm.IdTCPServerExecute(AThread: TIdPeerThread);
begin

end;
MfG
Thorsten

Kalle_XXXX 10. Okt 2004 17:35

Re: OnExecute selbst aufrufen
 
Ok jetzt hab ich mein Uses so erweitert
Code:
[b]uses[/b] ... System.Threading;
um einen Thread verwenden zu können.
Unter Public hab ich dann meine Procedure angelegt:
Code:
procedure IdTCPServerExecute(AThread: Thread);
Definierte Procedure im Code:
Code:
procedure TWinForm1.IdTCPServerExecute(AThread: Thread);
begin

end;
Und jetzt das wo er hängt:
Im TWinForm1.Create
ServerSocket ist mein idTCPServer Object
Code:
ServerSocket.OnExecute := IdTCPServerExecute;
Folgende Fehlermeldung erhalte ich:
Code:
Incompatyple Types: 'TidServerThreadEvent' and 'procedure, untyped pointer or untyped parameter'
Hast du noch ne Idee? Hab schon Probiert nen Thread mit zu übergeben, aber das wird auch dankend abgelehnt!
Thx

Meflin 10. Okt 2004 18:05

Re: OnExecute selbst aufrufen
 
versuche es mit
Delphi-Quellcode:
@ServerSocket.OnExecute := @IdTCPServerExecute;

Kalle_XXXX 10. Okt 2004 18:54

Re: OnExecute selbst aufrufen
 
Code:
ServerSocket.OnExecute := @IdTCPServerExecute;
--> Incompytyble Typs TidContext und Thread

Versteh i ni

Meflin 10. Okt 2004 19:07

Re: OnExecute selbst aufrufen
 
vor beides ein @!

mirage228 10. Okt 2004 19:11

Re: OnExecute selbst aufrufen
 
Zitat:

Zitat von Meflin
vor beides ein @!

Bist Du sicher, dass sowas auch in Delphi 8 bzw. in .NET generell geht?
.NET braucht bei sowas imho absolute Typsicherheit.

mfG
mirage228

Meflin 10. Okt 2004 19:16

Re: OnExecute selbst aufrufen
 
Zitat:

Zitat von mirage228
Zitat:

Zitat von Meflin
vor beides ein @!

Bist Du sicher, dass sowas auch in Delphi 8 bzw. in .NET generell geht?
.NET braucht bei sowas imho absolute Typsicherheit.

mfG
mirage228

nein keine ahnung, hab keinen blassen schimmer von .net! zumindest beim "normalen" delphi gehts so ;-)

omata 10. Okt 2004 19:46

Re: OnExecute selbst aufrufen
 
Moin,

ich habe dir doch die Prozedur mit seinen Parametern geschrieben.
Warum deklarierst du dann einen andere?
Die Parameter sind doch ganz anders!
Und wieso im Public-Teil, das ist zwar nicht so wichtig, aber soetwas wird immer im Private-Teil deklariert!

die Prozedur muss so aussehen:

Delphi-Quellcode:
procedure TForm.IdTCPServerExecute(AThread: TIdPeerThread);
begin

end;
NICHT so:

Delphi-Quellcode:
procedure TForm.IdTCPServerExecute(AThread: Thread);
begin

end;
(siehe Parameter!)

Die Fehlermeldung sagt genau das, was ich hier nochmal geschieben habe.

Und was hast du da für eine komische uses-Aktion durchgeführt.

Hast du mal versucht das Package zuinstallieren, damit das alles wie gewohnt funktionert?
Hast du die bpl-Datei gefunden?

sorry, aber wer lesen kann ist klar im Vorteil.

MfG
Thorsten

Kalle_XXXX 10. Okt 2004 19:47

Re: OnExecute selbst aufrufen
 
hatte bereits beide Varianten ausgetestet.
Gibts noch andere Lösungen für meine eigentliche Frage?
Zumindest ist es in D8 nicht so einfach eine Indy Komponente in die Toolbox zu bekommen. Deshalb war ich je gezwungen alles selbst zu coden, leider häng ich halt nur an dieser Stelle mit den Events.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 Uhr.
Seite 1 von 2  1 2      

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