Fastnet component중에서
Tnmstrmserv component에 관한 object inspector의 event에는
Onpacketrecvd라는 event는 없습니다.
그러나 delphi help에는
Tnmstrmserv -----events
derived from tpowersock
Onpacketrecvd가 있습니다.
Tnmstrmserv component에서 Onpacketrecvd event를 사용하려면 어떻게 해야 하나요 ?
고수님들의 많은 답변 기다립니다.
일단 다음 아래 소스대로 했는데 event가 일어나지 않는 것 같아요 !
nmstrmserv component를 통해 file을 전송받을때 그 진행 상황을 progress bar로 나타내려 합니다.
그런데 event가 발생하지 않는 것 같아요 ?
다음이 제 soure입니다.
너그러우신 마음으로 한번 보시고 틀린점이 있는 지 알려주시면 고맙겠습니다.
unit module1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Psock, NMSTRM;
type
TModuleform = class(TDataModule)
NMStrm1: TNMStrm;
NMStrmServ1: TNMStrmServ;
procedure NMStrm1PacketSent(Sender: TObject);
procedure NMStrmserv1Packetrecvd(Sender: TObject);
procedure NMStrm1MessageSent(Sender: TObject);
procedure NMStrmServ1ClientContact(Sender: TObject);
procedure NMStrm1ConnectionFailed(Sender: TObject);
procedure NMStrmServ1MSG(Sender: TComponent; const sFrom: String;
strm: TStream);
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Moduleform: TModuleform;
implementation
uses messengerfrm, mainfrm;
{$R *.DFM}
procedure TModuleform.NMStrm1PacketSent(Sender: TObject);
begin
messengerform.FlatProgressBar1.max:=nmstrm1.BytesTotal ;
messengerform.FlatProgressBar1.Position:=nmstrm1.BytesSent ;
end;
procedure TModuleform.NMStrm1MessageSent(Sender: TObject);
begin
messagedlg('File이 성공적으로 전송되었습니다.',mtinformation,[mbok],0) ;
end;
procedure TModuleform.NMStrmServ1ClientContact(Sender: TObject);
begin
nmstrmserv1.reportlevel:=status_basic ;
nmstrmserv1.timeout:=9000 ;
end;
procedure TModuleform.NMStrm1ConnectionFailed(Sender: TObject);
begin
messagedlg('File전송 중 오류발생'+#13+'다시 시도하세요 !',mterror,[mbok],0) ;
end;
procedure TModuleform.NMStrmServ1MSG(Sender: TComponent;
const sFrom: String; strm: TStream);
var
myfstream : tfilestream ;
begin
if fileexists(mainform.downloadpath) then deletefile(mainform.downloadpath) ;
myfstream:=tfilestream.create(mainform.downloadpath,fmcreate) ;
try
myfstream.copyfrom(strm,strm.size) ;
finally
myfstream.Free ;
end ;
end;
procedure TModuleform.NMStrmServ1PacketRecvd(Sender: TObject);
begin
messengerform.FlatProgressBar1.max:=nmstrmserv1.BytesTotal ;
messengerform.FlatProgressBar1.Position:=nmstrmserv1.BytesRecvd;
end;
procedure TModuleform.DataModuleCreate(Sender: TObject);
begin
NMStrmServ1.OnPacketRecvd := NMStrmServ1PacketRecvd ;
end;
end.