::: 델파이 Tip&Trick :::

델파이 Tip&Trick 성격에 맞지 않는 광고,비방,질문의 글은 즉시 삭제하며
내용을 복사하여 사용할 경우 반드시 이곳(http://www.howto.pe.kr)을 출처로 명시하여 주세요


Category

  김영대(2004-12-26 17:20:44, Hit : 7656, Vote : 1449
 http://www.howto.pe.kr
 TDownloadURL를 사용한 파일 다운받기

// 다운받을때 전송상태 Progress 와 전송중지 기능이 있는 예제입니다
// 하지만 전송중지 기능의 정확한 동작을 위해 아래 소스를 쓰레드로 넣는것이 좋습니다

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtActns, StdCtrls, ComCtrls, WinInet;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo1: TMemo;
    ProgressBar1: TProgressBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure URL_OnDownloadProgress(Sender: TDownLoadURL;
         Progress, ProgressMax: Cardinal;
         StatusCode: TURLDownloadStatus;
         StatusText: String; var Cancel: Boolean);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.URL_OnDownloadProgress(Sender: TDownLoadURL;
         Progress, ProgressMax: Cardinal;
         StatusCode: TURLDownloadStatus;
         StatusText: String; var Cancel: Boolean);
begin
  ProgressBar1.Max:= ProgressMax;
  ProgressBar1.Position:= Progress;

  Memo1.Lines.Add(Format('%s - %d/%d', [StatusText,
                                        Progress,
                                        ProgressMax]));
  Application.ProcessMessages;

  Cancel := (Button2.Tag = 1);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Clear;
  Button2.Tag := 0;

  // "임시 인터넷 파일" 캐쉬에 있다면 먼저 삭제
  DeleteUrlcacheEntry('http://www.howto.pe.kr/test.hwp');

  with TDownloadURL.Create(self) do
  try
    URL := 'http://www.howto.pe.kr/test.hwp';
    FileName := 'c:\zzz\111.hwp';
    OnDownloadProgress := URL_OnDownloadProgress;

    ExecuteTarget(nil) ;
  finally
    Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  Button2.Tag := 1;
end;

end.





971   [윈도우즈 API] 작업 표시줄에 보이는 프로그램의 아이콘 정보  김영대 2008/12/09 7125 1607
970   [윈도우즈 API] 실행 파일의 아이콘 바꾸기  김영대 2008/11/27 9054 1539
969   [네트웍/인터넷] TClientSocket 에 Local IP 바인딩하기  김영대 2008/11/25 7256 1664
968   [알고리즘] Boyer-Moore-Horspool Text Searching  김영대 2008/11/24 5573 1481
967   [일반/컴포넌트] Tab, Shift+Tab 키 이벤트 사용하기  김영대 2008/11/21 5601 1541
966   [일반/컴포넌트] TStringList vs. THashedStringList  김영대 2008/11/04 6148 1521
965   [시스템] 프로세스가 원도우즈 원격 터미널에서 실행중인지 검사  김영대 2008/11/04 5891 1639
964   [시스템] 원도우즈 도메인 이름 구하기  김영대 2008/11/04 16566 1600
963   [시스템] 사용중인 USB 포트의 장치정보 구하기  김영대 2008/11/04 19607 1733
962   [일반/컴포넌트] Treeview의 수평 스크롤바 감추고 스크롤 막기  김영대 2006/03/22 6168 1373
961   [윈도우즈 API] 바탕화면의 모든 창 최소화하기  김영대 2006/02/28 6044 1456
960   [일반/컴포넌트] 일정시간 경과후 없어지는 MessageBox  김영대 2006/02/28 7716 1760
959   [시스템] System의 Idle 상태를 알아내는 API  김영대 2006/02/28 6923 1596
958   [일반/컴포넌트] ListBox에 Edit 올려 항목 편집하기  김영대 2006/02/28 5319 1335
957   [일반/컴포넌트] 폼 흔들기  김영대 2006/02/28 8512 1345
956   [일반/컴포넌트] 마우스로 ProgressBar의 Position 바꾸기  김영대 2006/02/28 5457 1389
955   [일반/컴포넌트] ListBox 드래그하여 아이템 이동하기  김영대 2006/02/28 5397 1298
954   [시스템] 폼의 Move/Resize 시작,종료 이벤트 감지하기  김영대 2006/02/28 5842 1515
953   [COM/OLE] IE의 속성을 변경하여 뛰우기  김영대 2006/02/28 5996 1385
952   [윈도우즈 API] 세로 글꼴 제거한 FontDialog  김영대 2006/02/28 5948 1509
951   [시스템] CPU 이름 구하기2  김영대 2005/09/13 6361 1509
950   [네트웍/인터넷] IP Helper API 를 이용한 네트워크 카드 Enable/Disable 시키기  김영대 2005/09/10 6959 1472
949   [일반/컴포넌트] 폼에 자석효과 주기 (Delphi 6 이하)  김영대 2005/08/04 10913 1501
948   [일반/컴포넌트] 객체의 valid검사 Assigned() 대체  김영대 2005/07/29 5265 1362
947   [시스템] 시스템 대기모드/화면 보호기/모니터 끄기 이벤트 감지하기  김영대 2005/07/21 8527 1672
946     [COM/OLE] [re] PDF ActiveX 사용하기  초보델피 2005/07/18 5459 1183
945   [시스템] 윈도우즈 GUI 기본 폰트정보 구하기  김영대 2005/07/14 6136 1496
944   [시스템] 윈도우즈 입력도구모음의 한/영 토글하기  김영대 2005/06/24 5958 1536
943   [COM/OLE] ActiveForm의 OnDestroy 대용  김영대 2005/04/21 5826 1371
942   [일반/컴포넌트] ListView의 타이틀 폰트 바꾸기  김영대 2005/03/31 5849 1385
941   [일반/컴포넌트] 일정시간 경과후 없어지는 MessageDlg/ShowMessage  김영대 2005/03/26 6407 1402
940   [일반/컴포넌트] 프로그램의 bitmap을 MS 그림판으로 편집하여 다시 불러오기  김영대 2005/03/22 5846 3501
939   [일반/컴포넌트] RichEdit 2.0 줄간격 조정  김영대 2005/02/11 8896 1427
938   [COM/OLE] 탐색기에서 파일을 선택하여 ActiveX(ActiveFortm)에 Drag&Drop 하기  김영대 2005/01/06 8381 1410
  [윈도우즈 API] TDownloadURL를 사용한 파일 다운받기  김영대 2004/12/26 7656 1449
936   [COM/OLE] TWebBrowser에 직접 HTML 소스코드 넣기  김영대 2004/12/26 7180 1432
935   [윈도우즈 API] 윈도우즈 시스템 전체에서 사용자의 마우스와 키보드 입력이 있는지 검사하기  김영대 2004/12/26 6750 1506
934   [일반/컴포넌트] 다이얼로그 박스가 이미 떠있는지 검사하여 강제로 닫기  김영대 2004/12/22 5553 1325
933   [윈도우즈 API] URLDownloadToFile()를 사용한 파일 다운받기  김영대 2004/12/15 8638 1589
932   [COM/OLE] 내 프로그램에서 선택한 text를 다른 프로그램에 Drag&Drop으로 주기  김영대 2004/12/10 6052 1339

1 [2][3][4][5][6][7][8][9][10]..[25] [다음 10개]
 

Copyright 1999-2023 Zeroboard / skin by zero