delphi4arab منتديات دلفي للعرب
كيف اتعامل مع التحميل من المواقع بالدلفي - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : كيف اتعامل مع التحميل من المواقع بالدلفي (/showthread.php?tid=6074)



كيف اتعامل مع التحميل من المواقع بالدلفي - panchho1 - 13-04-2014

السلام عليكم ورحمة الله

اتمني ان تتسااعدوني

كيف اقوم بتحميل كتاب من موقع ثيصدر مجلة اسبوعية بصيغة pdf

يععني عند الضغط علي الزر يتم التنزيل المجلة من الموقع مباشرة في ملف

ماهو المكون المطلوب وكيف اتعامل معه


++++

كيف اعمل هدا البرنامج

كود :
download a file from the Internet {1.} uses URLMon, ShellApi; function DownloadFile(SourceFile, DestFile: string): Boolean; begin try Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; except Result := False; end; end; procedure TForm1.Button1Click(Sender: TObject); const // URL Location SourceFile = 'http://www.google.com/intl/de/images/home_title.gif'; // Where to save the file DestFile = 'c:\temp\google-image.gif'; begin if DownloadFile(SourceFile, DestFile) then begin ShowMessage('Download succesful!'); // Show downloaded image in your browser ShellExecute(Application.Handle, PChar('open'), PChar(DestFile), PChar(''), nil, SW_NORMAL) end else ShowMessage('Error while downloading ' + SourceFile) end; // Minimum availability: Internet Explorer 3.0 // Minimum operating systems Windows NT 4.0, Windows 95 {********************************************************} {2.} uses Wininet; function DownloadURL(const aUrl: string): Boolean; var hSession: HINTERNET; hService: HINTERNET; lpBuffer: array[0..1024 + 1] of Char; dwBytesRead: DWORD; begin Result := False; // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0); if Assigned(hService) then try while True do begin dwBytesRead := 1024; InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead); if dwBytesRead = 0 then break; lpBuffer[dwBytesRead] := #0; Form1.Memo1.Lines.Add(lpBuffer); end; Result := True; finally InternetCloseHandle(hService); end; end; finally InternetCloseHandle(hSession); end; end; {********************************************************} {3. Forces a download of the requested file, object, or directory listing from the origin server, not from the cache } function DownloadURL_NOCache(const aUrl: string; var s: String): Boolean; var hSession: HINTERNET; hService: HINTERNET; lpBuffer: array[0..1024 + 1] of Char; dwBytesRead: DWORD; begin Result := False; s := ''; // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, INTERNET_FLAG_RELOAD, 0); if Assigned(hService) then try while True do begin dwBytesRead := 1024; InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead); if dwBytesRead = 0 then break; lpBuffer[dwBytesRead] := #0; s := s + lpBuffer; end; Result := True; finally InternetCloseHandle(hService); end; end; finally InternetCloseHandle(hSession); end; end; //aufrufen var s: String; begin if DownloadURL('http://www.swissdelphicenter.ch/', s) then ShowMessage(s); end;

اي افكار او تويحات راح اكون ممتن لكم

وبارك الله فيكم


كيف اتعامل مع التحميل من المواقع بالدلفي - Agmcz - 13-04-2014

السلام عليكم
يمكن التحميل بالأمثلة التي وضعتها
باستعمال الوحدة URLMon أو Wininet
كإضافة يمكن أيضا إستعمال مكونات Indy
بالتحديد IdHTTP

ألق نظرة هنا
http://www.delphi4arab.net/forum/showthread.php?tid=7803

النتيجة واحدة فكل المسالك تؤدي إلى روما

بالتوفيق



كيف اتعامل مع التحميل من المواقع بالدلفي - panchho1 - 13-04-2014

ghost-dz كتب :السلام عليكم
يمكن التحميل بالأمثلة التي وضعتها
باستعمال الوحدة URLMon أو Wininet
كإضافة يمكن أيضا إستعمال مكونات Indy
بالتحديد IdHTTP

ألق نظرة هنا
http://www.delphi4arab.net/forum/showthread.php?tid=7803

النتيجة واحدة فكل المسالك تؤدي إلى روما

بالتوفيق

شكرا لك علي ردك اخي وبارك الله فيك

انا لم اعرف اين اضع الكود يعني تحت اي مكون لاني احمل سورسات واتعلم منهم فقط

ممكن مثال توضيحي لو سمحت ولو بسيط جداا

اين اضع الملف المحمل من النت يجب ان اضع له مسار
حملت كود سورس برنامج تسريع التحميل ومشروح بالتفصيل لكني لم افهمه:confused:

اعتدر عن الاطالة واسف لاني مبتدئ:p


كيف اتعامل مع التحميل من المواقع بالدلفي - Agmcz - 14-04-2014

ألق نظرة هنا
http://www.delphi4arab.net/forum/showthread.php?p=47278
مرفق مثال للتحميل بطريقتين
نرجو الفائدة للجميع



كيف اتعامل مع التحميل من المواقع بالدلفي - panchho1 - 15-04-2014

شكرا اخي لكن لم يصلح معي


HTTP.ConnectTimeout := 30000;

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, XPMan, URLMon2, IdHTTP2, ComCtrls;

وشكرا علي المسا عد ة


كيف اتعامل مع التحميل من المواقع بالدلفي - S.FATEH - 15-04-2014

ConnectTimeout هو الوقت اللازم انتضاره للرد من السيرفر اعتقد ان 30000 كثير


كيف اتعامل مع التحميل من المواقع بالدلفي - panchho1 - 15-04-2014

S.FATEH كتب :ConnectTimeout هو الوقت اللازم انتضاره للرد من السيرفر اعتقد ان 30000 كثير

اهلا

لا اضن دلن انقصت فيه

[Error] IdHTTP2.pas(70): Undeclared identifier: 'ConnectTimeout'
[Fatal Error] uDownloadFile.pas(7): Could not compile used unit 'IdHTTP2.pas'



كيف اتعامل مع التحميل من المواقع بالدلفي - bassem_43 - 20-04-2014

panchho1 كتب :السلام عليكم ورحمة الله

اتمني ان تتسااعدوني

كيف اقوم بتحميل كتاب من موقع ثيصدر مجلة اسبوعية بصيغة pdf

يععني عند الضغط علي الزر يتم التنزيل المجلة من الموقع مباشرة في ملف

ماهو المكون المطلوب وكيف اتعامل معه


++++

كيف اعمل هدا البرنامج

كود :
download a file from the Internet {1.} uses URLMon, ShellApi; function DownloadFile(SourceFile, DestFile: string): Boolean; begin try Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; except Result := False; end; end; procedure TForm1.Button1Click(Sender: TObject); const // URL Location SourceFile = 'http://www.google.com/intl/de/images/home_title.gif'; // Where to save the file DestFile = 'c:\temp\google-image.gif'; begin if DownloadFile(SourceFile, DestFile) then begin ShowMessage('Download succesful!'); // Show downloaded image in your browser ShellExecute(Application.Handle, PChar('open'), PChar(DestFile), PChar(''), nil, SW_NORMAL) end else ShowMessage('Error while downloading ' + SourceFile) end; // Minimum availability: Internet Explorer 3.0 // Minimum operating systems Windows NT 4.0, Windows 95 {********************************************************} {2.} uses Wininet; function DownloadURL(const aUrl: string): Boolean; var hSession: HINTERNET; hService: HINTERNET; lpBuffer: array[0..1024 + 1] of Char; dwBytesRead: DWORD; begin Result := False; // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0); if Assigned(hService) then try while True do begin dwBytesRead := 1024; InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead); if dwBytesRead = 0 then break; lpBuffer[dwBytesRead] := #0; Form1.Memo1.Lines.Add(lpBuffer); end; Result := True; finally InternetCloseHandle(hService); end; end; finally InternetCloseHandle(hSession); end; end; {********************************************************} {3. Forces a download of the requested file, object, or directory listing from the origin server, not from the cache } function DownloadURL_NOCache(const aUrl: string; var s: String): Boolean; var hSession: HINTERNET; hService: HINTERNET; lpBuffer: array[0..1024 + 1] of Char; dwBytesRead: DWORD; begin Result := False; s := ''; // hSession := InternetOpen( 'MyApp', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); try if Assigned(hSession) then begin hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, INTERNET_FLAG_RELOAD, 0); if Assigned(hService) then try while True do begin dwBytesRead := 1024; InternetReadFile(hService, @lpBuffer, 1024, dwBytesRead); if dwBytesRead = 0 then break; lpBuffer[dwBytesRead] := #0; s := s + lpBuffer; end; Result := True; finally InternetCloseHandle(hService); end; end; finally InternetCloseHandle(hSession); end; end; //aufrufen var s: String; begin if DownloadURL('http://www.swissdelphicenter.ch/', s) then ShowMessage(s); end;

اي افكار او تويحات راح اكون ممتن لكم

وبارك الله فيكم

وعليكم السلام
بالنسبة للكود السورس الاول لقد شرحته في موضوع تفضل الرابط
http://www.delphi4arab.net/forum/showthread.php?p=47386#post47386
اتمنى الافادة والاستفادة