Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Undeclared identifier: 'Address' (https://www.delphipraxis.net/91026-undeclared-identifier-address.html)

unlimited 27. Apr 2007 16:51


Undeclared identifier: 'Address'
 
Hi Leute,
Hab ein Problem mit meinem "TClientSocket". Er kennt die Eigenschaft "Address" und "Active" nicht mehr. Obwohl dieses doch eigentlich die Grundfunktionen sind oder ?

Kann mir jemand sagen was ich falsch mache?
Delphi-Quellcode:
Client.Address:= Edit2.Text;
Client.Active:= True;
Client.Socket.SendText (Memo1.Text);

Die Fehlermeldungen:
Delphi-Quellcode:
[Warning] Unit1.pas(13): Unit 'FileCtrl' is specific to a platform
[Error] Unit1.pas(172): Undeclared identifier: 'Address'
[Error] Unit1.pas(173): Undeclared identifier: 'Active'
[Error] Unit1.pas(174): Record, object or class type required
[Error] Unit1.pas(215): Undeclared identifier: 'Active'
Dankeschön!

Gruber_Hans_12345 27. Apr 2007 17:05

Re: Undeclared identifier: 'Address'
 
und du bist dir sicher, das Socket vom Typ TClientSocket ist?

unlimited 27. Apr 2007 17:45

Re: Undeclared identifier: 'Address'
 
Es ist leider wirklich ein TClientSocket

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    ServerSocket1: TServerSocket;
    Edit2: TEdit;
    Memo1: TMemo;
    Client: TClientSocket;
    ClientSocket1: TClientSocket;

mkinzler 27. Apr 2007 17:50

Re: Undeclared identifier: 'Address'
 
Vielleicht wird diese aber durch eine andere Variable überdeckt.

DGS 27. Apr 2007 18:14

Re: Undeclared identifier: 'Address'
 
Positioniere in Delphi über das "Client", wo du auch Address hast.
Dann sollte eine Hilfsblase erscheinen, die anzeigt, um welchen Typen es sich bei Client handelt. So kannst du prüfen, ob es wirklich der Socket ist.

Ich hab die Komponente nicht gut in Erinnerung, aber vielleicht muss zB sowas in der Art rein: Client.Socket.Address ?

*edit:

Hab nachgeschaut.
Ich verwende folgendes:
ClienSocket1.Socket.Localadress;

Was aber uns nicht weiterbringt, da auch ein ClienSocket1.Adress funktioniert.

Was mich störrt ist eher der Name Client. Müsste es nicht Fclient heißen? Jedenfalls steht die Namensgebung im Tutorial.

unlimited 27. Apr 2007 18:58

Re: Undeclared identifier: 'Address'
 
FClient ? Ne! Warum den?


Delphi-Quellcode:
ServerSocket1.Active:= True;
Kennt er nicht.

Delphi-Quellcode:
Client.Address:= Edit2.Text;
Kennt er nicht.

Delphi-Quellcode:
Client.Socket.Address:= Edit2.Text;
Error...Record, Object or Class Type required (was auch immer das bedeutet) :drunken:

Delphi-Quellcode:
Client.Socket.SendText (Memo1.Text);
Error...Record, Object or Class Type required

Delphi-Quellcode:
ServerSocket1.Socket.Active:= True;
Cant assign to a read-only property

So.Das sind mal viele Möglichkeiten und keine geht...ich verzweifel echt an diesem Socket :cry:


Das Problem ist das dieses Socket die Eigenschaften Address und Active GARNICHT hat ....wie kann das sein?!
In anderen Tutorials geht das doch auch :(
HILFE :|

Apollonius 27. Apr 2007 20:53

Re: Undeclared identifier: 'Address'
 
Ehrlich gesagt sieht es danach aus, dass du eine weitere Variable namens Client hast, die eben weder Record noch Klasse ist.

DGS 27. Apr 2007 22:26

Re: Undeclared identifier: 'Address'
 
Zitat:

Zitat von unlimited
FClient ? Ne! Warum den?

Eine Delphi Konvention. Variablen innerhalb der type-deklaration sollte man mit einem vorrangegangenem f kennzeichnen.
Die variable "Client" ist ja deine eigene "Erfindung"
Ich versteh eh nicht, weshalb du zwei Clientsockets brauchst.
Der ClienSocket1 wird doch durch die Form erstellt und konfiguriert. Wieso nutzt du nicht ihn?

Zitat:

Zitat von unlimited
Delphi-Quellcode:
Client.Address:= Edit2.Text;
Kennt er nicht.

Delphi-Quellcode:
Client.Socket.Address:= Edit2.Text;
Error...Record, Object or Class Type required (was auch immer das bedeutet) :drunken:


nochma:
ClientSocket1.Socket.LocalAddress := edit1.text;


Zitat:

Zitat von unlimited
So.Das sind mal viele Möglichkeiten und keine geht...ich verzweifel echt an diesem Socket :cry:


Das Problem ist das dieses Socket die Eigenschaften Address und Active GARNICHT hat ....wie kann das sein?!
In anderen Tutorials geht das doch auch :(
HILFE :|

In anderen Tutorials werden ja auch richtige ClientSockets verwendet. Was du da verwendest ist unklar.
Wieso benutzt du nicht stattdessen den ClientSocket1 ?
Hast du vielleicht wild mit dem Code rumgespielt und munter drauflos umbenannt?

Nuclear-Ping 28. Apr 2007 09:48

Re: Undeclared identifier: 'Address'
 
Im Zweifelsfall einfach mal ein leeres Projekt erstellen, nen TClientSocket drauf und schauen, ob es da .Active und .Address gibt.


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