[Delphi] WebBrowser - download

Witam wszystkich. Mam pytanie. Piszę sobie przeglądarkę właśnie, i teraz chcę zrobić własne okienko downloadu - żeby się nie wyświetlało to z IE. No i tu problem. Które zdarzenie komponentu WebBrowser odpowiada za pobieranie. Dokładnie chodzi mi o rozpoczęcie pobierania, w czasie pobierania - czyli coś się ma dziać jak pobiera i zakończenie pobierania. Czy to są zdarzenia OnBeginDownload i te inne z download w nazwie? Jeśkli tak to napiszcie. No i co potem dalej zrobić? Jak wyświetlę SaveDialog z pytaniem gdzie zapisać ściągnięty pik, to jakiej funkcji potem urzyć? Z góry dz za pomoc :slight_smile:

Sorry, OnBeginDownload to jest chyba zdarzenie, jak zaczyna pobierać (wczytywać) stronę. No to które zdarzenie jest aby zacząć pobierać, w trakcie pobierania i zakońćzenie pobierania? No i jakie funkcje np do tego? Bo wszystko mam ok se zrobiłęm, tylko zależy mi jeszcze, aby wyświetlać swój download a nie z IE.

OnBeforeNavigate2(); // można tu zmienić okno w którym będzie ładować lub zabronić ładowania

OnDownloadBegin(); // rozpoczyna ściąganie

OnProgressChange(); // można użyć do pokazania paska

OnDownloadComplete(); // ściąganie zakończone

OnNavigateComplete2(); // koniec ładowania

no ok dz, ale jak jak dam pokazanie okna pobierania OnDownloadBegin to mi się ono pokazuje przy przejściu na każdą inną stronę, gdy wpiszę adres i przejdę.

A słyszałeś może o takiej konstrukcji jak if/else ?

Rozwijając wypowiedź wyżej, sprawdź co jest pobierane, czy strona czy plik.

Tak, słyszałem. I sorry, bez obrazy, ale ty nie musisz być taki nie miły. Fiołek, bardzo proszę, powiedz jak to sprawdzić, bo ja początkujący w tych tematach xD

a dokłądniej, to czy możecie mi pokazać przykłądowy kod, jak to np zrobić. Bo próbuję i nie wychodzi. Z góry dz :slight_smile:

Jeżeli zwracana zawartość jest typu “text/html” to znaczy że to jest strona, w pozostałych przypadkach - plik.

ok rozumiem, tylko jakoś nie wiem (znowu, sorry), jak sprawdzić, czy zwracana jest strona (chodzmi mi o funkcję, nie wiem jaka), bo to by miało tak wyglądać:

if strona. html then //…

else

// i tu to co ma robić jeśli to plik jest. Tylko jakoś nie weim co zrobić, aby zobaczyć co zwraca. Proszę pokażcie mi drobny kod w delphi :slight_smile: I potem jak już dojdzie do pobierania, to co dalej? Bardzo pls :")

Sprawdź typ MIME. W której zmiennej to jest zapisane sprawdź w dokumentacji.

Użyj najpierw komendę HEAD zamiast GET/POST zwraca ona tylko nagłówek pobieranego pliku. Radze tez wziąć Mozila ActiveX Control zamiast standardowego IE, w mozile masz pełną kontrole, i jest dostępne źródło przeglądarki.

Dzięki za wszystko :slight_smile: