2

Indy 10(TIdTcpServer)を使用していますが、次のエラーが発生します。

[DCC Error] MainForm.pas(88): E2066 Missing operator or semicolon

このコードを実行しようとすると:

procedure TForm1.SendMessage(Data: String; Client: Integer);
var
  List: TList;
  AContext: TIdContext;
begin
  List := idTcpServer1.Contexts.LockList;
  AContext(List[0]).Connection.IOHandler.WriteLn(Data);  // Line 88
end;

何が欠けているのか理解できません。何か助けはありますか?

4

1 に答える 1

9

発生しているエラーを説明することはできませんが、コードは完全に間違っています。

次のように変更します。

procedure TForm1.SendMessage(Data: String; Client: Integer);
var
  List: TList;
  AContext: TIdContext;
begin
  List := idTcpServer1.Contexts.LockList;
  AContext := TIdContext(List[0]);
  AContext.Connection.IOHandler.WriteLn(Data);
end;

型キャストを非型で誤って使用すると、コンパイラが混乱する可能性があります。それでも解決しない場合は、質問を編集して、投稿した内容の周りにコードを追加してください(投稿した内容の数十行前が役に立ちます)。

于 2012-09-26T23:32:55.477 に答える