Q&A

  • 조금만 조언 부탁드릴께엽...... 갈켜 주세요!!!1
제가 지금 어떤 프로그램 안에 이 소스를 잡아 넣고 싶은데요....

다른 소스의 한 프로시저 안에 잡아 넣는 방법은 없나요????

아님 이 소스를 한 프로시저 안에다가 몽땅 잡아 넣을 수는 없나요??

그래야 다른 프로그램이 돌아 갈 것 같아서리.....

아니면 다른 프로그램에서 하나의 버튼으로 이 NMFTP 프로그램이 실행되게 할 수 있는 방법은 없을까요??

조언 꼭 부탁 드립니다.... 즐거운 추석 보내세요......

그럼 꼭 조언 좀 해 주세요.............



소스 :

unit UFtp_juni1;



interface



uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

ComCtrls, StdCtrls, Psock, NMFtp, Db, DBTables;



type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Button2: TButton;

Button3: TButton;

NMFTP1: TNMFTP;

Label3: TLabel;

Label4: TLabel;

Label7: TLabel;

Label8: TLabel;

Button6: TButton;

RemoteTxt: TEdit;

Database1: TDatabase;

Query1: TQuery;

DataSource1: TDataSource;

StatusBar1: TStatusBar;

HostTxt: TEdit;

PortTxt: TEdit;

UserTxt: TEdit;

PassTxt: TEdit;

LocalTxt: TEdit;

RichEdit1: TRichEdit;

Button4: TButton;

Memo1: TMemo;

Query2: TQuery;

DataSource2: TDataSource;

Database2: TDatabase;



procedure NMFTP1Success(Trans_Type: TCmdType);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure NMFTP1ListItem(Listing: String);

procedure NMFTP1PacketRecvd(Sender: TObject);

procedure Button6Click(Sender: TObject);

procedure saveproc;

procedure NMFTP1Connect(Sender: TObject);

procedure NMFTP1Failure(var handled: Boolean; Trans_Type: TCmdType);

procedure NMFTP1TransactionStop(Sender: TObject);

procedure NMFTP1HostResolved(Sender: TComponent);

procedure NMFTP1InvalidHost(var handled: Boolean);

procedure NMFTP1PacketSent(Sender: TObject);

procedure NMFTP1TransactionStart(Sender: TObject);

procedure NMFTP1Disconnect(Sender: TObject);

procedure NMFTP1Error(Sender: TComponent; Errno: Word; Errmsg: String);

procedure NMFTP1Status(Sender: TComponent; Status: String);

procedure NMFTP1UnSupportedFunction(Trans_Type: TCmdType);

procedure NMFTP1ConnectionFailed(Sender: TObject);

//procedure SaveLog;



private

{ Private declarations }

public

{ Public declarations }

end;



var

Form1: TForm1;

savecnt: integer;

savedate :TDateTime;



implementation



{$R *.DFM}



var

Q: Integer;



procedure TForm1.NMFTP1Success(Trans_Type: TCmdType);

begin

Case Trans_Type of

cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir success';

cmdMakeDir: StatusBar1.SimpleText := 'MakeDir success';

cmdDelete: StatusBar1.SimpleText := 'Delete success';

cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir success';

cmdList: StatusBar1.SimpleText := 'List success';

cmdRename: StatusBar1.SimpleText := 'Rename success';

cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore success';

cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore success';

cmdDownload: StatusBar1.SimpleText := 'Download success';

cmdUpload: StatusBar1.SimpleText := 'Upload success';

cmdAppend: StatusBar1.SimpleText := 'UploadAppend success';

cmdReInit: StatusBar1.SimpleText := 'ReInit success';

cmdAllocate: StatusBar1.SimpleText := 'Allocate success';

cmdNList: StatusBar1.SimpleText := 'NList success';

cmdDoCommand: StatusBar1.SimpleText := 'DoCommand success';

end;

end;



procedure TForm1.Button1Click(Sender: TObject);

begin

NMFTP1.Host := HostTxt.Text;

NMFTP1.Port := StrToInt(PortTxt.Text);

NMFTP1.Timeout := 5000;

NMFTP1.UserID := UserTxt.Text;

NMFTP1.Password := PassTxt.Text;

try

NMFTP1.Connect;

except

On E:Exception do

if E.message='something'

then writeln('poo');

end

end;



procedure TForm1.Button2Click(Sender: TObject);

begin

NMFTP1.Disconnect;

end;



procedure TForm1.Button5Click(Sender: TObject);

begin

Q := 1;

NMFTP1.Nlist;

end;



procedure TForm1.Button6Click(Sender: TObject);

begin

Q := 1;

NMFTP1.List;

end;



procedure TForm1.NMFTP1ListItem(Listing: String);

begin

Memo1.Lines.Add(IntToStr(Q)+': '+Listing);

Inc(Q);

end;



procedure TForm1.NMFTP1PacketRecvd(Sender: TObject);

begin

StatusBar1.SimpleText := IntToStr(NMFTP1.BytesRecvd)+' of '+IntToStr(NMFTP1.BytesTotal);

end;





procedure TForm1.Button3Click(Sender: TObject);

begin

NMFTP1.Download(RemoteTxt.Text, LocalTxt.Text);

saveproc;

end;



procedure TForm1.NMFTP1Connect(Sender: TObject);

begin

StatusBar1.SimpleText := 'Connected';

end;



procedure TForm1.NMFTP1Failure(var handled: Boolean; Trans_Type: TCmdType);

begin

Case Trans_Type of

cmdChangeDir: StatusBar1.SimpleText := 'ChangeDir failure';

cmdMakeDir: StatusBar1.SimpleText := 'MakeDir failure';

cmdDelete: StatusBar1.SimpleText := 'Delete failure';

cmdRemoveDir: StatusBar1.SimpleText := 'RemoveDir failure';

cmdList: StatusBar1.SimpleText := 'List failure';

cmdRename: StatusBar1.SimpleText := 'Rename failure';

cmdUpRestore: StatusBar1.SimpleText := 'UploadRestore failure';

cmdDownRestore: StatusBar1.SimpleText := 'DownloadRestore failure';

cmdDownload: StatusBar1.SimpleText := 'Download failure';

cmdUpload: StatusBar1.SimpleText := 'Upload failure';

cmdAppend: StatusBar1.SimpleText := 'UploadAppend failure';

cmdReInit: StatusBar1.SimpleText := 'ReInit failure';

cmdAllocate: StatusBar1.SimpleText := 'Allocate failure';

cmdNList: StatusBar1.SimpleText := 'NList failure';

cmdDoCommand: StatusBar1.SimpleText := 'DoCommand failure';

end;

end;



procedure TForm1.NMFTP1TransactionStop(Sender: TObject);

begin

StatusBar1.SimpleText := 'Data Transfer Complete';

end;



procedure TForm1.NMFTP1HostResolved(Sender: TComponent);

begin

StatusBar1.SimpleText := 'Host resolved';

end;



procedure TForm1.NMFTP1InvalidHost(var handled: Boolean);

begin

ShowMessage('Invalid Host');

end;



procedure TForm1.NMFTP1PacketSent(Sender: TObject);

begin

StatusBar1.SimpleText := IntToStr(NMFTP1.BytesSent)+' of '+IntToStr(NMFTP1.BytesTotal);

end;



procedure TForm1.NMFTP1TransactionStart(Sender: TObject);

begin

StatusBar1.SimpleText := 'Beginning Data Transfer';

end;



procedure TForm1.NMFTP1Disconnect(Sender: TObject);

begin

If StatusBar1 <> nil then

StatusBar1.SimpleText := 'Disconnected';

end;



procedure TForm1.NMFTP1Error(Sender: TComponent; Errno: Word;

Errmsg: String);

begin

ShowMessage('Error '+IntToStr(Errno)+': '+Errmsg);

end;



procedure TForm1.NMFTP1Status(Sender: TComponent; Status: String);

begin

If StatusBar1 <> nil then

StatusBar1.SimpleText := status;

end;



procedure TForm1.NMFTP1UnSupportedFunction(Trans_Type: TCmdType);

begin

Case Trans_Type of

cmdChangeDir: ShowMessage('ChangeDir unsupported');

cmdMakeDir: ShowMessage('MakeDir unsupported');

cmdDelete: ShowMessage('Delete unsupported');

cmdRemoveDir: ShowMessage('RemoveDir unsupported');

cmdList: ShowMessage('List unsupported');

cmdRename: ShowMessage('Rename unsupported');

cmdUpRestore: ShowMessage('UploadRestore unsupported');

cmdDownRestore: ShowMessage('DownloadRestore unsupported');

cmdDownload: ShowMessage('Download unsupported');

cmdUpload: ShowMessage('Upload unsupported');

cmdAppend: ShowMessage('UploadAppend unsupported');

cmdReInit: ShowMessage('ReInit unsupported');

cmdAllocate: ShowMessage('Allocate unsupported');

cmdNList: ShowMessage('NList unsupported');

cmdDoCommand: ShowMessage('DoCommand unsupported');

end;

end;



procedure TForm1.NMFTP1ConnectionFailed(Sender: TObject);

begin

ShowMessage('Connection Failed');

end;

end.

2  COMMENTS
  • Profile
    하기 2001.09.29 18:59
    소스를 한 프로시저 안에다가 몽땅 잡아넣는다는 것은

    NMFTP프로그램Form을 부른다는 이야기 같은데 ...



    다른 프로그램에서 실행(Exe를 실행)시키신다면

    NMFTP프로그램Form이 하나의 실행화일로 되어있다면

    WinExe나 ShellExecute를 사용해 보세요...

    (이건 아마도 검색에서 찾으시면 나올것 같고...)



    하나의 Project에서 실행 하신다면

    buttonClick Event에

    Application.CreateForm(NMFTP프로그램Form, TNMFTP프로그램Form );

    NMFTP프로그램Form.Show;//(NMFTP프로그램Form.Showmodal)

    이런식으로 사용하셔도 될것 같은데요

    그럼... ^^;



    델초보쭈니~ wrote:

    > 제가 지금 어떤 프로그램 안에 이 소스를 잡아 넣고 싶은데요....

    > 다른 소스의 한 프로시저 안에 잡아 넣는 방법은 없나요????

    > 아님 이 소스를 한 프로시저 안에다가 몽땅 잡아 넣을 수는 없나요??

    > 그래야 다른 프로그램이 돌아 갈 것 같아서리.....

    > 아니면 다른 프로그램에서 하나의 버튼으로 이 NMFTP 프로그램이 실행되게 할 수 있는 방법은 없을까요??

    > 조언 꼭 부탁 드립니다.... 즐거운 추석 보내세요......

    > 그럼 꼭 조언 좀 해 주세요.............





  • Profile
    델초보쭈니~ 2001.09.29 20:03
    님아 답변 넘 고맙습니다....^^

    제가 의도하는 바는 그런게 아니라....

    다른 프로그램소스내에서 버튼 하나로 걍 이NMFTP가 처음부터 끝까지 실행이 되는지....???? 궁금합니다...

    다른 소스내에 NMFTP 소스를 걍 복사해서 넣어면 실행이 안되잖아요???맞져??

    그러니깐 그 방법을 좀 갈켜 주세요..???

    CreateForm도 안하고 걍 실행이 되는지???? 궁금합니다...

    다른 프로그램이 실행 되면 NMFTP도 같이 실행 되게끔 하고 싶은거에요....

    버튼은 최대하나만 클릭하고요.....????

    꼭 좀 좋은 조언 부탁드립니다...

    그럼 이만.......





    하기 wrote:

    > 소스를 한 프로시저 안에다가 몽땅 잡아넣는다는 것은

    > NMFTP프로그램Form을 부른다는 이야기 같은데 ...

    >

    > 다른 프로그램에서 실행(Exe를 실행)시키신다면

    > NMFTP프로그램Form이 하나의 실행화일로 되어있다면

    > WinExe나 ShellExecute를 사용해 보세요...

    > (이건 아마도 검색에서 찾으시면 나올것 같고...)

    >

    > 하나의 Project에서 실행 하신다면

    > buttonClick Event에

    > Application.CreateForm(NMFTP프로그램Form, TNMFTP프로그램Form );

    > NMFTP프로그램Form.Show;//(NMFTP프로그램Form.Showmodal)

    > 이런식으로 사용하셔도 될것 같은데요

    > 그럼... ^^;