Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi prozedur umleiten (https://www.delphipraxis.net/28050-prozedur-umleiten.html)

Pseudemys Nelsoni 19. Aug 2004 00:59


prozedur umleiten
 
hi,

wie kann ich nochmal eine prozedur umleiten?

ich weiss nurnoch das es ca so aussah:

Delphi-Quellcode:
ClientSocket1.OnRead := myprozedur;
*g*


geht aber nicht so ganz

Nothine 19. Aug 2004 01:07

Re: prozedur umleiten
 
OnRead ist eine procedure of object :warn: und deswegen musst du die adresse deiner prozedur statt der prozedur selber übergeben, was dann im endeffekt einfach 2 '@'-Zeichen mehr wären :wink: :mrgreen:
Delphi-Quellcode:
@ClientSocket1.OnRead := @myprozedur;
du könntest auch noch den umweg über eine variable gehen, is aber nur mehr tippsel-arbeit, das säh dann so aus
Delphi-Quellcode:
var SocketRead: TSocketNotifyEvent;
...
@SocketRead := @MyProzedur;
ClientSocket1.OnRead := SocketRead;

dizzy 19. Aug 2004 02:36

Re: prozedur umleiten
 
Oder man definiert MyProcedure gleich als Prozedur eines Objektes - z.B. des Formulars.

Nothine 19. Aug 2004 02:40

Re: prozedur umleiten
 
das ist nur in manchen fällen nicht möglich (obwohl, es ist nur mehr schreib-arbeit :mrgreen:)
naja aber in seinem fall wäre es ganz einfach, einmal im objektinspektor doppelklick auf das OnRead des ClientSocket1, und dann den code von myprozedur per copy&paste rein da :roll: :mrgreen:

dizzy 19. Aug 2004 02:45

Re: prozedur umleiten
 
Das geht nur dann nicht, wenn man zur Laufzeit zwischen verschiedenen Verhalten umschalten will.

...naja gut, man könnte sich auch Flags setzten, und mit case arbeiten - aber die Prozeduren umzubiegen ist da doch etwas eleganter :)

Ist doch immer wieder gut, dass es mehrere Möglichkeiten gibt, und man sich so schön seinen Favoriten wählen kann ;)

Nothine 19. Aug 2004 02:48

Re: prozedur umleiten
 
nur das es dann immer leute gibt die einem z.B. sagen dass das nich OOP gerecht is und solche sachen :roll:

[OT](mein info-lehrer meint immer zu mir das ich einer der besten schüler bin die er je hatte aber abgesehn davon das es läuft nur spaghetti-code produziere :roll: :mrgreen:)[/OT]

dizzy 19. Aug 2004 02:55

Re: prozedur umleiten
 
Zitat:

Zitat von Nothine
nur das es dann immer leute gibt die einem z.B. sagen dass das nich OOP gerecht is und solche sachen :roll:

Nur die erste Variante mit den expliziten Adressübergaben ist da etwas "wurschtelig", da man ja an objektlose Prozeduren übergibt. Die anderen beiden sind da denke ich mal nicht so gegen's Prinzip. Das macht Delphi selbst ja genau so! Z.B. die OnClick-Prozedur eines Buttons wird ja auf eine Prozedur des Formulars gelenkt, wenn man via Doppelclick im OI das Ereignis zuweist. Von daher kann man da nix gegen haben ;)

Zitat:

Zitat von Nothine
[OT](mein info-lehrer meint immer zu mir das ich einer der besten schüler bin die er je hatte aber abgesehn davon das es läuft nur spaghetti-code produziere :roll: :mrgreen:)[/OT]

1. Proll! (war bei mir aber auch so :mrgreen:)
2. Waaah Nudeln haben im Kot nix zu suchen!

Nothine 19. Aug 2004 02:59

Re: prozedur umleiten
 
Zitat:

Zitat von dizzy
Zitat:

Zitat von Nothine
nur das es dann immer leute gibt die einem z.B. sagen dass das nich OOP gerecht is und solche sachen :roll:

Nur die erste Variante mit den expliziten Adressübergaben ist da etwas "wurschtelig", da man ja an objektlose Prozeduren übergibt. Die anderen beiden sind da denke ich mal nicht so gegen's Prinzip. Das macht Delphi selbst ja genau so! Z.B. die OnClick-Prozedur eines Buttons wird ja auf eine Prozedur des Formulars gelenkt, wenn man via Doppelclick im OI das Ereignis zuweist. Von daher kann man da nix gegen haben ;)

dafür is meine variante nur eine zeile :mrgreen:

Zitat:

Zitat von dizzy
1. Proll! (war bei mir aber auch so :mrgreen:)
2. Waaah Nudeln haben im Kot nix zu suchen!

1. Proll? Ich? Wo denkst du hin :roll:
2. das erinnert mich an die sig von jemand aus der DP "Leute fresst mehr Scheiße! 1 Milliarde Fliegen können nicht irren!" (oder so) :mrgreen:

dizzy 19. Aug 2004 03:04

Re: prozedur umleiten
 
Zitat:

Zitat von Nothine
dafür is meine variante nur eine zeile :mrgreen:

Naja, für No2 brauchts ja auch nur die Deklaration in TForm1 mehr... die Prozedur selber muss ja eh her ;). Find ich jetzt nicht so den Aufwand... *g*

Zitat:

Zitat von Nothine
1. Proll? Ich? Wo denkst du hin :roll:
2. das erinnert mich an die sig von jemand aus der DP "Leute fresst mehr Scheiße! 1 Milliarde Fliegen können nicht irren!" (oder so) :mrgreen:

1. Sach ich nich ;)
2. Schön fand ich auch: "Rettet die Bäume - esst mehr Biber!" :lol:


So, ich geh' jetzt schlafen. Ist ja schon früh genug :).

bye,
dizzy


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:35 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