Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
TClientSocket und TServerSocket fehlen (seit D7)
spacer
Autor Nachricht
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Moderator

Beiträge: 7363
Erhaltene Danke: 10
Dabei seit: 25.07.2004
Wohnort: Gelsenkirchen

W2k, WXPpro
D6pe, D7pro
BeitragVerfasst: Mi 13.09.06 14:02  Antworten mit Zitat Beitrag melden
Wo sind die Socket-Komponenten (TClientSocket und TServerSocket) hin?

Seit der Delphi-Version 7 werden die Borland-Socket-Komponenten TClientSocket und TServerSocket nicht mehr standardmäßig in der IDE angeboten. Hier ist eine Anleitung, wie man diese Komponenten nachinstallieren kann. Da bei den Personal Editions von Delphi die IDE-Integration von Borland nicht vorgesehen ist, wird auch beschrieben, wie man die Socket-Komponenten dynamisch verwenden oder mit einem Trick trotzdem wieder in die IDE integrieren kann.


1. Voraussetzungen

Die Socket-Komponenten werden zwar nicht mehr in der Komponentenpalette der IDE angezeigt, sind aber noch im Lieferumfang enthalten. Es handelt sich dabei um das Package dclsockets70.bpl bzw. eine entsprechende Datei, falls es eine neuere Delphi-Version ist.

Leider ist bei den Delphi PE-Versionen diese Datei nicht mit im Lieferumfang enthalten. Borland wünscht also offensichtlich nicht, dass PE-Benutzer die IDE-Integration verwenden dürfen. :nixweiss: Die Verwendung des Packages ist demnach in einer PE-Version illegal. :? Das ist aber kein Grund, auf die Socket-Komponenten verzichten zu müssen, denn es ist statt dessen die Datei ScktComp.dcu mit dabei, so dass eine dynamische Verwendung der Komponenten möglich und auch legal ist. Ein Beispiel dazu ist in Kapitel 3 angegeben. Zusätzlich wird in Kapitel 4 ein Trick erläutert, mit dem man die Sockets trotzdem auch in einer PE-Version wieder in die Komponentenpalette der IDE integrieren kann. ;)


2. Die Socket-Komponenten nachinstallieren (nicht in PE-Versionen, bitte in Kapitel 3 oder 4 schauen!)

Wir klicken im Menü "Komponente" auf den Befehl "Packages installieren":

Im folgenden Dialog wählen wir den Button "Hinzufügen...":

Dann suchen wir im \bin-Verzeichnis der Delphi-Installation (normalerweise C:\Programme\Borland\Delphi7\Bin) die Datei dclsockets70.bpl bzw. eine entsprechende Datei, falls es eine neuere Delphi-Version ist und klicken auf "Öffnen":

Das Package mit den Socketkomponenten wird jetzt neu in der Liste angezeigt:

Wir klicken auf den Button "Komponenten...", um zu prüfen, ob die richtigen Komponenten installiert wurden. Es sollte etwa folgendes Bild angezeigt werden:

Wir schließen beide Dialog mit "OK".
Falls die Komponenten jetzt noch nicht im Register "Internet" angezeigt werden, können wir die Komponentenpalette noch anpassen. Dazu klicken wir im Menü "Komponente" auf den Befehl "Palette konfigurieren...":

Im folgenden Dialog können wir nun links das Register "Internet" auswählen und rechts die darin befindlichen Komponenten gegebenenfalls anordnen:

Wenn die Socketkomponenten erfolgreich hinzugefügt wurden, sollte das Register "Internet" etwa so aussehen:

Die letzten beiden Komponenten sind der TClientSocket und der TServerSocket.


3. Socket-Komponenten dynamisch verwenden (auch PE-Versionen)

Die Socket-Komponenten lassen sich natürlich auch dynamisch anlegen und verwenden. Es fehlt dann lediglich die IDE-Integration, funktionale Einschränkungen gibt es nicht. Hier ein Beispiel mit dem TClientSocket:
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
uses
  ..., ScktComp;

type
  TForm1 = class(TForm)
    procedure DynConnectEvent(Sender: TObject; Socket: TCustomWinSocket);
  public
    ClientSocket1: TClientSocket; // dynamisch erzeugter TClientSocket
  end;

// bei Programmstart ausführen
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Objekt erstellen; Eigentümer ist das Formular -> so wird das Objekt beim
  // Beenden automatisch mit freigegeben
  ClientSocket1 := TClientSocket.Create(Form1);
  // Ereignisse eintragen
  ClientSocket1.OnConnect := DynConnectEvent;
  // fertig, ClientSocket dynamisch erstellt
  ClientSocket1.Host := 'localhost'// Server-Adresse, hier: der eigene PC
  ClientSocket1.Port := 12345// Port eintragen
  ClientSocket1.Active := TRUE; // und aktivieren
end;

// dyn. Ereignismethode
procedure TForm1.DynConnectEvent(Sender: TObject; Socket: TCustomWinSocket);
begin
  ShowMessage('Connect');
end;

Hier ist ein ausführlicheres Tutorial zur Verwendung der Socket-Komponenten.


4. Socket-Komponenten in einer PE-Version trotzdem in die IDE integrieren

IDE starten, "Datei" > "Alle schließen" anklicken, dann "Datei" > "Neu" > "Unit" auswählen:

Den Quelltext der neuen Unit wie folgt übernehmen:
ausblenden Delphi-Quelltext markieren
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
unit Socks;  
 
interface  
 
uses  
  SysUtils, Classes, Controls, ExtCtrls, Scktcomp;  
 
procedure Register;  
 
implementation  
 
procedure Register;  
begin  
  RegisterComponents('Internet', [TServerSocket]);  
  RegisterComponents('Internet', [TClientSocket]);  
end;  
 
end.

"Datei" > "Speichern unter..." anklicken und die Unit als DelphiSockets.pas im \Lib-Ordner der Delphi-Installation abspeichern (normalerweise C:\Programme\Borland\Delphi7\Lib):

Dann im Menü "Komponente" > "Komponente installieren..." anklicken:

Die gerade gespeicherte Unit auswählen und auf "Öffnen" klicken:

Im folgenden Dialog einfach "OK" anklicken:

Im folgenden Dialog "Ja" anklicken:

Im folgenden Dialog "OK" anklicken:

Falls beim Schließen des Packages gefragt wird:
den Vorgang mit "Ja" bestätigen.

Anschließend sollten sich die Socket-Komponenten trotz PE-Version wieder in der IDE verwenden lassen. ;)
Danke an Tilman für den Hinweis auf diesen Trick. :zustimm:


Sockets_ab_D7_v1.00.pdf  (83.26 KB) Download (Rev 0)
 (1068x, 1068x gesamt)
Beschreibung: Offline-Version der Anleitung als PDF
_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Mo 11.12.06 13:47, insgesamt 1-mal bearbeitet
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home