AGB  ·  Datenschutz  ·  Impressum  







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

Unit spielt verrückt

Ein Thema von Jamah · begonnen am 7. Dez 2009 · letzter Beitrag vom 8. Dez 2009
Antwort Antwort
Jamah

Registriert seit: 2. Dez 2009
Ort: Nordhorn
74 Beiträge
 
RAD-Studio 2010 Arc
 
#1

Unit spielt verrückt

  Alt 7. Dez 2009, 16:02
Hallo.
Ich habe folgendes Problem:
Ich benutze Delphi 2009. Und da ich die Socketkomponente nicht nutzen konnte, also TClientSocket und TServerSocket. Also. Ich hab dann die Sockets.dcu eingefügt und aufgerufen.
Jetzt hab ich ein programm geschrieben, das ist nur ein kleiner LAN-Chat. was aber passiert, wenn ich ihn compilen will[Code]:
Code:
DCC Fataler Fehler Sockets.pas(6): F2092 Das Programm oder die Unit 'Sockets' ruft sich selbst wieder auf
Ich ab also die sockets aus den Uses genommen, dann kam aber folgendes:
Code:
DCC Fehler Sockets.pas(9): E2003 Undeklarierter Bezeichner: 'TTcpClient'
DCC Warnung Sockets.pas(16): W1055 PUBLISHED verursachte, dass RTTI ($M+) zu Typ 'TClientSocket' hinzugefügt wurde
DCC Fehler Sockets.pas(26): E2010 Inkompatible Typen: 'TComponentClass' und 'Class reference'
DCC Fataler Fehler Chat.pas(8): F2063 Verwendete Unit 'Sockets.pas' kann nicht compiliert werden
Dann hab ich die Sockets in die Implementation unter Uses genommen, und dann kommen wieder endlose Fehler:

Code:
DCC Fehler Sockets.pas(9): E2003 Undeklarierter Bezeichner: 'TTcpClient'
DCC Warnung Sockets.pas(16): W1055 PUBLISHED verursachte, dass RTTI ($M+) zu Typ 'TClientSocket' hinzugefügt wurde
DCC Fataler Fehler Sockets.pas(24): F2092 Das Programm oder die Unit 'Sockets' ruft sich selbst wieder auf
Hier ist der Quelltext der Unit Sockets:
Delphi-Quellcode:
unit Sockets;

interface

uses
  SysUtils, Classes, Sockets;

type
  TClientSocket = class(TTcpClient)
  private
    { Private-Deklarationen }
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
  published
    { Published-Deklarationen }
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Standard', [TClientSocket]);
end;

end.
  Mit Zitat antworten Zitat
ToFaceTeKilla

Registriert seit: 17. Mai 2006
Ort: Leipzig
283 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Unit spielt verrückt

  Alt 7. Dez 2009, 16:19
Die Sockets-Unit die du benutzt ist eine externe, wenn ich das richtig verstehe?
Dann solltest du dein Programm (also deine Unit) nicht auch Sockets nennen...
Billy Gerwitz
"Bei der Softwareentwicklung suchen wir nicht den richtigen Weg, sondern den am wenigsten falschen." - frei nach V. Hillmann
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Unit spielt verrückt

  Alt 7. Dez 2009, 16:23
Zitat von Jamah:


Delphi-Quellcode:
unit Sockets; // Name der Unit ist "Sockets"

interface

uses
  SysUtils, Classes, Sockets; // in der Usesliste steht ebenfalls "Sockets"
Du hast da eine Unit namens "Sockets" die in der Usesliste eine Unit Names "Sockets" enthält! Das geht so nicht. Um das Problem zu umgehen solltest du deine "Sockets.pas" umbenennen (z.B. "MySockets.pas")

Allerdings verstehe ich nicht, was du machen willst...

Willst du eine eigene TClientSocket-Variante entwicklen? Dann solltest du auch diese Komponente nicht so nennen wie eine bereits existierende.

Eventuell solltest du auch erst einmal beschreiben, warum du das Problem hast:

Zitat von Jamah:
Und da ich die Socketkomponente nicht nutzen konnte, also TClientSocket und TServerSocket.
Wenn du das Problem löst, dann musst du wahrscheinlich gar keine eigene TClientSocket erstellen. Leider hast du keine Informationen angegeben, warum das Problem besteht! Und darum wird dir leider in dieser Hinsicht niemand helfen können. Bitte beschreibe doch mal genauer, warum du die Standard-Komponenten nicht benutzen kannst (Fehlermeldungen??)

Ciao,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat
Jamah

Registriert seit: 2. Dez 2009
Ort: Nordhorn
74 Beiträge
 
RAD-Studio 2010 Arc
 
#4

Re: Unit spielt verrückt

  Alt 7. Dez 2009, 17:42
Nee in RAD Stdio 2009 wird TClientSocket nicht mitinstalliert.....
  Mit Zitat antworten Zitat
Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Unit spielt verrückt

  Alt 7. Dez 2009, 17:50
Da ich nie D2009 benutzt habe wusste ich das nicht (ist eigentlich eine Delphi Standard-Komponente). Aber schau mal hier: Where to Locate the Missing TServerSocket and TClientSocket Delphi components

Natürlich musst du in dem entsprechenden Ordner für D2009 nachsehen und die Version der "dclsocketsXXX.BPL" auswählen die D2009 entspricht (ist das dann dclsockets112.bpl??? - sollte eigentlich)

(und in meinem D2007 muss ich das Package irgenwann mal manuell installiert haben...)
Ralf Kaiser
  Mit Zitat antworten Zitat
Jamah

Registriert seit: 2. Dez 2009
Ort: Nordhorn
74 Beiträge
 
RAD-Studio 2010 Arc
 
#6

Re: Unit spielt verrückt

  Alt 7. Dez 2009, 21:41
Umbenennen hat geholfen
Danke.
Aber ich habe ncoh eben eine Frage, für die ich keinen neuen Thread aufmachen wollte.

Delphi-Quellcode:
begin
try
  if Edit3.Text = ''  then
  begin
  end
 except
 begin
  Dialogs.MessageDlg('Bitte geben Sie einen gültigen Benutzernamen an!', mtError, mbOK); // Funktion überladen, kann nicht mit diesen Argumenten aufgerufen werden.
  end
end;
Was will mir das sagen?
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Unit spielt verrückt

  Alt 8. Dez 2009, 07:48
Zitat von Jamah:
[...] Funkiton überladen, kann nicht mit diesen Argumenten aufgerufen werden [...]
Was will mir das sagen?
Dass die Funktion nicht mit diesen Argumenten aufgerufen werden kann?
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.276 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Unit spielt verrückt

  Alt 8. Dez 2009, 08:16
Hallo,

MessageDlg('Bitte geben Sie einen gültigen Benutzernamen an!', mtError, mbOK, 0);
(die ,0 fehlt),

Und lass bitte das Dialogs weg.

Oder hast du wieder eine eigene gleichnamige Methode geschrieben ???


Früher hiess eine solche Meldung auch anders.
"Argument fehlt"

Seit Delphi aber Funktinonen überladen kann
(gleicher Name, aber andere Parameter), bringt Delphi halt diese Meldung.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.079 Beiträge
 
Delphi 12 Athens
 
#9

Re: Unit spielt verrückt

  Alt 8. Dez 2009, 08:19
Zitat von Jamah:
Funktion überladen, kann nicht mit diesen Argumenten aufgerufen werden.
bei mir ist diese Meldung etwas aussagekräftiger
Zitat:
[Fehler] Unit1.pas(27): Inkompatible Typen: 'TMsgDlgButtons' und 'TMsgDlgBtn'
also die 0 (HelpCtx) fehlt zwar wirklich, aber zuerstmal wird das mbOK bemängelt.

Dialogs.MessageDlg('Bitte geben Sie einen gültigen Benutzernamen an!', mtError, [mbOK], 0);
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  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 23: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