Zitat von
Medium:
Mal eine ganz andere Frage: Soweit ich weiss, arbeiten Sockets (zumindest die Delphi-Dinger) mit Fensterhandles bzw. Messages. Wenn man sowas auf ein DM steckt, kommen dann die Events und alles überhaupt an?
Ich bin gerade nicht ganz sicher, aber irgendwo habe ich sogar gelesen, das man die Sockets auf ein Datenmodul legen kann. Außerdem hat es bisjetzt mit D2007 ja auch wunderbar funktioniert.
Der Vorteil ist, ich kann von jedem Formular geziehlt auf die TClientSocket zugreifen. Wenn ich diese ins MainForm lege, müsste ich ja mit Querverweisen arbeiten.
Delphi-Quellcode:
uses
IrgendeineForm;
....
implementation //von Irgendeiner Form
uses
MainForm;
Beim Datenmodul,kann ich jeweils auf diese zugreifen, kann vor dem Programmstart schon die Serververbindung herstellen.
Daher gesehen, sollte nichts dagegen sprechen.
Ich versteh allerdings nicht, warum ich die Komponenten nicht auf das Datenmodul gelegt bekomme.
Allerdings, nach dem ich die genannten Tips umgesetzt habe, funktioniert es.
Bevor ich einen neuen Thread starte, mal kurz eine andere Frage.
Die Verlegung auf ein Datenmodul ist durch eine zukünftig gewollte Authentifizierung auf dem Server entstanden.
Ich muss also vor dem Start der Anwendung erst prüfen, ob meine Benutzerdaten dem Server bekannt sind. Daher habe ich das ganze auf ein DM verschoben und erstelle dieses vor meinem Anmeldebildschirm. Daher kann ich die Userabfrage direkt auf dem Server machen.
Delphi-Quellcode:
begin
Application.CreateForm(TDataModule5, DataModule5);
if Login.Execute then
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TForm4, Form4);
Application.Run;
end
else
ShowMessage('Fehler bei der Anmeldung, Programm wird beendet!');
end.
Mir stellt sich nun die Frage, ob ich eventuell grundsätzlich eine andere Komponente als die TServer und ClientSocket verwenden sollt. Gibt es irgendeine Komponente die den direkten Uservergleich kann. Oder muss ich das immer selber schreiben.
So mit Protokolldatei etc...
Ich weiß wie das geht, aber wenn ich z.B. beim Start des Servers der TServerSocket
(Ähnliche Kompo) die Authentifizierungsdaten zur Verfügung stellen könnte, z.B. UserName = User Password = Password und beim Connect dieses geprüft würde, wäre das für meinen Fall völlig ausreichend und nicht so aufwendig. Gibt es so eine Komponente?
Gruß Jens