Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   ProfessionalConnect - Komponente (https://www.delphipraxis.net/51843-professionalconnect-komponente.html)

Zacherl 20. Aug 2005 11:24


ProfessionalConnect - Komponente
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo,
da viele das Problem haben, bei einer Verbindung über die Sockets ihre Clients eindeutig zu identifizieren, habe ich diese Komponenten entwickelt. Sie sind noch nicht optimiert und es könnten kleinere Fehler drin sein, aber eigentlich funktionieren sie schon recht gut.
Der Server wird mit ProfessionalServer1.Open gestartet und mit Close geschlossen. Der Client mit Connect verbunden und mit Disconnect getrennt. Im OnEndListUpdating Ereigniss sollte z.B. die Namensliste aktualisiert werden.
Eine Demo liegt bei. Die Demo ist ganz auf die Schnelle entstanden und nicht dokumentiert. Aber ein Blick in den Quelltext dürfte das klären. Hierbei befinden sich 2 Clienten und 1 Server auf dem gleichen Formular.

Florian

Zacherl 28. Aug 2005 15:54

Re: ProfessionalConnect - Komponente
 
Hat jemand die Komponente getestet?
Ich würde mich über ein Feedback freuen!

Florian

shmia 30. Aug 2005 15:19

Re: ProfessionalConnect - Komponente
 
Zitat:

Zitat von Florian Bernd
Hat jemand die Komponente getestet?
Ich würde mich über ein Feedback freuen!

Nur Sourcecode angeschaut.
Vorschlag:
statt jedes Event neu zu deklarieren
Delphi-Quellcode:
Type
  TOnConnect = procedure (Sender: TObject) of object;
Type
  TOnDisconnect = procedure (Sender: TObject) of object;
verwende einfach das vordefinierte Event TNotifyEvent.
Nur wenn ein Event mehr als Parameter Sender benötigt, wird ein neuer Eventtyp deklariert.
TProfessionalServer:
die Deklaration TempClientHeader: array[0..30000] of TClientHeader frisst richtig viel Heu (RAM).
Hier wäre eine Ableitung von TList angebracht.

Khabarakh 30. Aug 2005 20:09

Re: ProfessionalConnect - Komponente
 
Ich habe mir auch nur den Sourcecode angeschaut, aber gleich ein paar Memory Leaks gefunden. Bevor du ein Programm oder eine Komponente zur Verfügung stellst, solltest du den Code immer erst mit MemCheck o.Ä. prüfen.

Zacherl 30. Aug 2005 22:03

Re: ProfessionalConnect - Komponente
 
Hallo,
erst mal danke für die Vorschläge!

Zitat:

die Deklaration TempClientHeader: array[0..30000] of TClientHeader frisst richtig viel Heu (RAM).
Hier wäre eine Ableitung von TList angebracht.
Wie könnte man so was realisieren?

Zitat:

Ich habe mir auch nur den Sourcecode angeschaut, aber gleich ein paar Memory Leaks gefunden. Bevor du ein Programm oder eine Komponente zur Verfügung stellst, solltest du den Code immer erst mit MemCheck o.Ä. prüfen.
:shock: Hab ich noch nie gemacht. Wo sind denn z.B. Memory Leaks?

Florian

Khabarakh 30. Aug 2005 22:35

Re: ProfessionalConnect - Komponente
 
Zitat:

Zitat von Florian Bernd
Zitat:

die Deklaration TempClientHeader: array[0..30000] of TClientHeader frisst richtig viel Heu (RAM).
Hier wäre eine Ableitung von TList angebracht.
Wie könnte man so was realisieren?

http://www.delphipraxis.net/internal...=139745#139745
oder du arbeitest mit TObjectList und Klassen, ist IMO einfacher.
Zitat:

Zitat:

Ich habe mir auch nur den Sourcecode angeschaut, aber gleich ein paar Memory Leaks gefunden. Bevor du ein Programm oder eine Komponente zur Verfügung stellst, solltest du den Code immer erst mit MemCheck o.Ä. prüfen.
:shock: Hab ich noch nie gemacht. Wo sind denn z.B. Memory Leaks?
Du gibst das Feld "Cmds" in beiden Klassen nicht frei, die Listen in OnClientReadF, ...
Das habe ich beim Anschauen des Codes gesehen, einen vollen MemCheck-Bericht kann ich dir ohne Anwendung, in der deine Komponenten benutzt werden, nicht geben.
MemCheck

Zacherl 1. Sep 2005 15:17

Re: ProfessionalConnect - Komponente
 
Zitat:

Du gibst das Feld "Cmds" in beiden Klassen nicht frei, die Listen in OnClientReadF, ...
Achso das meinst du. Ich bin die Komponente noch am weiterentwickeln. Wollte sie nur noch schnell hochladen, bevor ich in Urlaub gefahren bin :oops:

Zitat:

http://www.delphipraxis.net/internal...=139745#139745
oder du arbeitest mit TObjectList und Klassen, ist IMO einfacher.
Danke!
Florian


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