Q&A

  • typecast error가 왜 나오나요
제가 소켓 프로그램을 하던 중에 (강좌에서 본)동적으로 소켓을 생성, 이벤트를 처리 하



던 중 막히는 부분이 있어서, 이렇게 글을 올립니다.





procedure TForm1.socket3clientread(Sender: TObject; Socket: TCustomWinSocket);

var

i, j, m, bn : integer;

:

:



begin

bn := ( Sender as TServerSocket ).Tag;// <--- 이부분에서 type cast에러가

발생합니다.



tmp := Mysocket1[bn].Socket.ReceiveText;



:

:



socket3clientread(Sender, Socket);

end;



procedure TForm1.createsocketrtn(v_port: integer; v_tag: integer);

begin

Mysocket1[v_tag] := TServerSocket.Create(Application);

Mysocket1[v_tag].Name := 'svr_socket' + inttostr(v_port);

Mysocket1[v_tag].Port := v_port;

Mysocket1[v_tag].Tag := v_tag;

Mysocket1[v_tag].Open;

Mysocket1[v_tag].OnClientRead := socket3clientread;

end;





1  COMMENTS
  • Profile
    이준해 2000.05.28 00:17
    Sender 가 TServerSocket Class의 Instance가 아니어서 나는 에러 같네요.

    다음과 같이 해보세요.

    if not (Sender is TServerSocket) then begin

    showMessage('Sender is not TServerSocket');

    exit;

    end;