function Tsendmsg2.Msendmsg2(const msg: WideString): WideString;
begin
clients.OnWrite(TObject, TCustomWinSocket);
end;
procedure Tsendmsg2.ClientSWrite(Sender: TObject; Socket: TCustomWinSocket);
begin
clients.Active := true;
socket.SendText('KwGwMGS RESERVE hanstay.com CPLOGINID checksum cpipcode svccode 211.117.100.142 1111');
end;
---------------------------------------------------
function에서 아래프로시져를 호출하기위해 function안에 위와같이 써줬는데 안돼네요..어떻게 불려야하는거죠?
부탁드립니다..
> function Tsendmsg2.Msendmsg2(const msg: WideString): WideString;
> begin
>
> clients.OnWrite(TObject, TCustomWinSocket);
>
>
> end;
>
> procedure Tsendmsg2.ClientSWrite(Sender: TObject; Socket: TCustomWinSocket);
> begin
> clients.Active := true;
> socket.SendText('KwGwMGS RESERVE hanstay.com CPLOGINID checksum cpipcode svccode 211.117.100.142 1111');
>
> end;
> ---------------------------------------------------
>
> function에서 아래프로시져를 호출하기위해 function안에 위와같이 써줬는데 안돼네요..어떻게 불려야하는거죠?
>
> 부탁드립니다..
>
Msendmsg2함수를 호출하면 데이터가 전송되도록 하고자 하심인가요?
OnWrite은 호출하도록 되어있는 함수가 아니고 데이터가 전송될 때 실행할 이벤트핸들러 프로시저에 대한 포인터입니다. 즉 프로시저가 아니고 프로퍼티이죠
데이터를 보낼 때는 이렇게 해야 합니다.
function Tsendmsg2.Msendmsg2(const msg: WideString): WideString;
begin
clients.Active := true; // 접속
socket.SendText('KwGwMGS RESERVE hanstay.com CPLOGINID checksum cpipcode svccode 211.117.100.142 1111'); // 전송
end;
그리고 Tsendmsg2.ClientSWrite 에는 데이터가 전송될 때 처리하고자 하는 처리 코드를 넣습니다. (데이터전송중 메시지표시나 뭐 등등...)
프로그램 초기화과정에서 Tsendmsg2.ClientSWrite가 OnWrite의 이벤트 핸들러가 되도록 다음과 같이 씁니다.
Tsendmsg2.OnWrite = ClientSWrite;
또는 클라이언트 소켓 속성창의 OnWrite를 클릭하여 ClientSWrite로 설정해 놓아도 됩니다.