Hi, alle zusammen!
Erst einmal vorweg ein digges Lob an
DP ! Die Seite hat mir schon zu vielen Problemen
eine gute Lösung geboten.
Doch nun hab ich ein Problem, mit dem ich nicht weiter komme:
Delphi-Quellcode:
type
TNachricht = class
public
procedure Execute(Strings : TStringList); virtual; abstract;
end;
type
TKarteHinzufügen = class(TNachricht)
public
procedure Execute(Strings : TStringList); override;
end;
//...
var
AddKarte : TNachricht;
//...
procedure TKarteHinzufügen.Execute(Strings : TStringList);
var InfoFile : TextFile;
Info : string;
begin
//...
end;
procedure TFMain.FormCreate(Sender: TObject);
begin
AddKarte := TKarteHinzufügen.Create;
//...
end;
//...
// Client sendet string (Inhalt: AddKarte,...)
//...
procedure TFMain.ServerExecute(AContext: TIdContext);
var Strings : TStringList;
//test : TNachricht;
begin
Strings := TStringList.Create;
Strings.CommaText := AContext.Connection.IOHandler.Readln;
//test := TNachricht(Strings[0]);
//test.Execute(strings);
TNachricht(Strings[0]).Execute(Strings); // Hier kommt eine Zugriffsverletzung
// vermutlich durch den cast
end;
Also: Was es später werden soll ist eine Befehlsübermittlung per IndyClient.
Vorher hatte ich den string mit einer case Struktur abgetastet, aber es sollte
vll noch bessere Möglichkeiten geben, und das soll ein Ansatz darstellen.
Falls jmd das Problem mit der Zugriffsverletzung lösen kann, oder mit sagen kann,
wie ich so eine Befehlsübermittlung programmieren kann wäre ich sehr dankbar.
Meine Vermutung ist noch, dass der Fehler am Cast liegt, jedoch weiß ich nicht warum.