Forum: Netzwerke
by Sir Rufo,
3. Feb 2016
Auch ...
Du willst doch etwas konkretes frmHddCrawler.Analyze erledigen und übergibst dafür irgendwas TJSONObject.
ICrawlHdd = interface
function Analyze( request : THddCrawlerRequest ) : THddCrawlerResponse;
end;
function TServerMethods1.updateHddCrawler(Key: string; aJSONObject: TJSONObject): TJSONObject;
Forum: Netzwerke
by Sir Rufo,
3. Feb 2016
Was die Erzeugung der Result-Instanz angeht -> Nein.
Der Rest sieht seltsam aus :stupid:
Forum: Netzwerke
by Sir Rufo,
3. Feb 2016
Natürlich erzeugt das ein MemLeak, wenn du das nicht entsprechend behandlest und beim Aufruf der Funktion auch die LifeTime-Management-Verantwortung für das Ergebnis übernimmst.
Ist exakt das Gleiche wie bei
function BuildObject : TObject;
begin
Result := TObject.Create;
end;
var
Forum: Netzwerke
by Sir Rufo,
2. Feb 2016
Ja ... aber das kommt doch auf das Gleiche hinaus.
Ich kann die Nachricht per Hand auseinandernehmen (dazu muss mir aber die Struktur zur DesignTime bekannt sein) oder die Nachricht in eine Klasse schreiben lassen (die ich nur schreiben kann, wenn mir die Struktur zur DesignTime bekannt ist).
Der große Unterschied ist, dass ich bei der Verwendung von Klassen mit einer Zeile Code die...
Forum: Netzwerke
by Sir Rufo,
1. Feb 2016
TsTsTs ... muss man immer alles dreimal sagen
http://www.delphipraxis.net/1328714-post6.html
:stupid:
Forum: Netzwerke
by Sir Rufo,
1. Feb 2016
ToString ist von der Definition her dafür da, die Instanz als String darzustellen.
Das willst du aber nicht, du willst den Wert.
TJSONObject.Values liefert ein TJSONValue und wenn das vom Type ein TJSONString ist, dann bekommt man bei TJSONString.Value auch den gesuchten String-Wert.
EDIT Stop, Kommando zurück, du hast dort ein TJSONArray und der erste Wert ist dann ein TJSONString ;)