AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Was hat vorrang?

Ein Thema von Pseudemys Nelsoni · begonnen am 24. Sep 2004 · letzter Beitrag vom 24. Sep 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Was hat vorrang?

  Alt 24. Sep 2004, 00:06
hi,

was hat ihr eigentlich vorrang:

procedure TServerSocket.myClientRead(Sender: TObject; Socket: TCustomWinSocket); ?

ich meine wenn ich jetzt auf "socket." zugreifen möchte, wir dann mein "socket" von meiner instanz benutzt oder mein "socket" im übergebenem argument?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Was hat vorrang?

  Alt 24. Sep 2004, 00:17
wo is da ne instanz ?

poste doch n bisschen mehr code

.. aber falls du das meinst was ich auch meine *g* dann würde ich sagen, das übergebene.. sowas hatte ich vorgestern auch
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#3

Re: Was hat vorrang?

  Alt 24. Sep 2004, 00:19
Moin!

Nein, das ist der Socket aus dem Connections[] Array, also der Socket für genau den einen Client von dem was empfangen wurde. Ein TClientSocket hat nur einen Socket, ein TServerSocket hat einen Socket pro verbundenen Client. Und es wird dort als Parameter der gleiche Socket übergeben wie er auch in dem Connections[] Array vorkommt. Da Instanzenvariablen standardmässig Zeiger sind, wird immer ein Zeiger übergeben der auf ein und die selbe Instanz zeigt.

// ---- Edit ----

Aso, deine Klasse TServerSocket beinhaltet eine Variable/Property namens "Socket" und die Procedure ja nun auch - da ist die Eindeutigkeit nicht immer eindeutig. Ärger gehst du leicht aus dem Weg, wenn du einfach den Parameter von "Socket" auf "ASocket" z.B. umbenennst. Dies ist z.B. ein gutes Beispiel, warum bei mir alle Argument eine "A" vor dem Namen bekommen, weil es Argumente sind und somit schlecht mit den Klassenvariablen/-properties verwechselt werden können.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: Was hat vorrang?

  Alt 24. Sep 2004, 00:20
hoi

procedure TServerSocket.myClientRead(Sender: TObject; Socket: TCustomWinSocket); ^^^^^hier natürlich sieht man die instanz nicht, aber die instanz hier von TServerSocket hat u.a auch "Socket", deshalb weiss ich nun nicht ob wenn ich "Socket.Disconnect" benutze sich das auf meine instanz von TServerSocket bezieht, oder auf den übergebenen "socket"


Edit: @Mütze,

aber ServerSocket.Socket gibt es ja auch oder?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Was hat vorrang?

  Alt 24. Sep 2004, 00:25
Moin!

1. Ich habe oben meinen Post nochmals editiert.

2. zu deiner Frage:

Ja, hat er - aber das ist eine andere Klasse als beim TClientSocket. Diese bietet z.B. die Eigenschaft ActiveConnections, Connections, etc. Mit diesen kommst du dann an die Sockets für die Clients ran.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: Was hat vorrang?

  Alt 24. Sep 2004, 00:28
hoi mütze, danke für deinen beitrag.

Genau das meinte ich ja, welches "socket" benutzt wird
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: Was hat vorrang?

  Alt 24. Sep 2004, 05:55
Es muss der Parameter Vorrang haben, da er ja zu den lokalen Variablen gehoert. Immer lokal vor global.
Die property kann man mit Self.Socket ansprechen.
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#8

Re: Was hat vorrang?

  Alt 24. Sep 2004, 07:24
Zitat:
Es muss der Parameter Vorrang haben, da er ja zu den lokalen Variablen gehoert. Immer lokal vor global.
Die property kann man mit Self.Socket ansprechen
Es HAT der Parameter Vorrang.
Der "Self - Zeiger" kann immer zur Auflösung von Vorrangfragen eingesetzt werden, um sicher zu stellen, dass die Instanzvariable verwendet wird.

"Self.Socket" wäre also auch etwas anderes als eine lokal definierte Variable mit dem Namen "Socket"

Schönen Tag wünsche ich.
Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#9

Re: Was hat vorrang?

  Alt 24. Sep 2004, 11:05
Moin!

Ich gehe trotzdem lieber solchen Doppeldeutigkeiten aus dem Weg, weil ich schon öfters mal beim debuggen feststellen musste, das er trotz dieser "Vorrangregelung" das falsche übergibt - also der Compiler mal wieder Müll macht. Das ist mir nun schon bei grossen Projekten mehr als einmal vor die Füsse gefallen weshalb ich sowas grundsätzlich mit Verwendung eines "A" bei den Argumenten aus dem Weg gehe...

MfG
Muetze1
  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 17:52 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