Autor Beitrag
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 13.09.06 13:02 
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":
user defined image

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

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":
user defined image

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

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

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...":
user defined image

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

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

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
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:
user defined image

Den Quelltext der neuen Unit wie folgt übernehmen:
ausblenden Delphi-Quelltext
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.
user defined image

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

Dann im Menü "Komponente" > "Komponente installieren..." anklicken:
user defined image

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

Im folgenden Dialog einfach "OK" anklicken:
user defined image

Im folgenden Dialog "Ja" anklicken:
user defined image

Im folgenden Dialog "OK" anklicken:
user defined image

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

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


Sockets_ab_D7_v1.00.pdf  (83.26 KB) Download (Rev 0)
 (10175x, 10175x 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 12:47, insgesamt 1-mal bearbeitet