FStopped finde ich nicht, ich vermute du meinst State auf Stopped?
FStopped ist ein Feld von TDSClientCallbackChannelManager und wird in NotifyChange gesetzt. Da es strict private ist, lässt sich das leider auch nicht mit einer abgeleiteten Klasse fixen.
Der Code in CloseClientChannel sieht in XE3 und XE6 identisch aus.
Bis auf die Tatsache, daß in XE3 die lokale Variable Status nicht initialisiert wird und damit einen unbestimmten Wert enthält wenn State <> ctsStarted ist. In XE6 wird sie mit False vorbelegt, was meiner Meinung nach ungünstig ist, aber das ist vielleicht auch Geschmackssache. Ich finde es intuitiver, wenn auch bei State <> ctsStarted ein CloseClientChannel mit true durchläuft und der State hinterher auf ctsStopped steht, insbesondere wenn der State vorher auf ctsFailed stand. Wichtig ist aber, daß Status bei FStopped auf True gesetzt wird, damit auch aufgeräumt wird.
Das Problem ist dann aber klar, ja.Gibt es dazu schon einen
QC Eintrag? Ich konnte nämlich eben bei einer schnellen Suche keinen finden.
Ich muss zu meiner Schande gestehen, daß ich es versäumt habe, einen simplen Testfall aufzubereiten. Takahashi san ist da bekannterweise etwas anspruchsvoll. Ich gelobe aber Besserung.