AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte ProfessionalConnect - Komponente

ProfessionalConnect - Komponente

Ein Thema von Zacherl · begonnen am 20. Aug 2005 · letzter Beitrag vom 1. Sep 2005
Antwort Antwort
Benutzerbild von Zacherl
Zacherl
Registriert seit: 3. Sep 2004
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
Angehängte Dateien
Dateityp: zip professionalconnect_demo_966.zip (245,5 KB, 49x aufgerufen)
Dateityp: zip professionalconnect_198.zip (5,7 KB, 42x aufgerufen)
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
 
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#2
  Alt 28. Aug 2005, 14:54
Hat jemand die Komponente getestet?
Ich würde mich über ein Feedback freuen!

Florian
  Mit Zitat antworten Zitat
shmia

 
Delphi 5 Professional
 
#3
  Alt 30. Aug 2005, 14:19
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.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#4
  Alt 30. Aug 2005, 19:09
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.
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#5
  Alt 30. Aug 2005, 21:03
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.
Hab ich noch nie gemacht. Wo sind denn z.B. Memory Leaks?

Florian
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#6
  Alt 30. Aug 2005, 21:35
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.
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
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

 
Delphi 10.2 Tokyo Starter
 
#7
  Alt 1. Sep 2005, 14:17
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

Zitat:
http://www.delphipraxis.net/internal...=139745#139745
oder du arbeitest mit TObjectList und Klassen, ist IMO einfacher.
Danke!
Florian
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 05:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf