Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Indy AContext.Data Zugriff disconnect

  Alt 10. Apr 2013, 20:38
Bei TClientIdentifier handelt es sich um eine Klasse von TObject die als einzige Definition mac:string; besitzt.
Bei Indy 10 wird die eigene Kontextklasse von TIdServerContext abgeleitet und dann dem Server über die Property ContextClass zugewiesen. Der Server erzeugt dann automatisch beim Connect eine Instanz dieser selbst definierten Kontextklassse.

Delphi-Quellcode:
TClientIdentifier = class(TIdServerContext)
public
  Mac: string;
end;
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  IdServer.ContextClass := TClientIdentifier;
end;
Damit braucht man auf AContext.Data nicht mehr zuzugreifen, sondern hat direkt ein passendes Objekt:

Delphi-Quellcode:

  TClientIdentifier(AContext).Mac := Data.Mac;


Ob das den Fehler erklärt kann ich nicht sagen, aber man kann sicher mit dem Debugger in die OnExecute Methode hinein und sehen was nach der Zuweisung geschieht.

Hope this helps,
Michael Justin

Geändert von mjustin (10. Apr 2013 um 20:44 Uhr)
  Mit Zitat antworten Zitat