Pytanie zasadnicze - chodzi o TWebBrowser

0

Cześć:) Mam pewien problem który mi spędza sen z powiek ;)
otóż zrobiłem programik który wczytuje pliki animacji Flasha (*.swf ,*dcr)
Zrobiłem kod stronny WWW zawierający instrukcje dotyczące skryptu
(łeb w łeb taki sam kod strony jaki jest po ściągnięciu z netu)
Jeśli wczytuje ten kod IE spod windy to widoczny jest pasek postępu
(wykreowany przez skrypt) odnośnie ilości w kb ściągnietej gry. Jest OK

Problem w tym że:
Mam ten sam kod strony zawarty w Memo i wczytuje
go do TWebBrowser za pomocą instrukcji WebBrowser.OleObject.document.write(Memo.Text);
Niby jest ok, gra się uruchamia ale nie widać paska postępu.
Wykorzystałem procedurę "TWebBrowserProgressChange" -
ale to odnosi sie tylko jako tako do wczytania strony, ale wczytywanie gry jest wywołane "wewnetrznie" z poziomu strony .. hmmm
Człek wtedy siedzi i duma czy wgrywa się coś czy nie ?
Pytanie brzmi:

  1. Co jest tego przyczyną ?
  2. Jakiej instrukcji użyć by TWebBrowser zakomunikował o całkowitym załadowaniu strony nawet tej z "wewnetrznymi" odwołaniami ?
0

Jeśli dobrze rozumiem to chcesz wstawić animacje flasha. Jeśli tak to po co Ci WebBrowser przeciez możesz wykorzystac kontrolke flasha

0

Mógłbym skorzystać w Delphi z kontrolki do wyświetlania Flasha -
nawet ją zainstalowałem (najnowszą wersję)
Ale w moim programie oprócz standardowych plików *swf , wczytuje
pliki z animacjami *dcr i *dir - a tych kontrolka z poziomu Delphi nie
obsługuje :( więc dlatego wykorzystuje TWebBrowser
A i kodzie strony z poziomu programu w liniach dotyczących skryptu zmieniam programowo parametry skryptu "param" lub inne.

0

OK zawsze możesz flasha możesz wyświetlić w jednym a te drugie w WebBrowserze :)

0

haha dobrze poradziłeś - co inny format pliku to nowe okno :)
raz komponent flasha raz TwebBrowser.
Myślę że zostanę przy swoim - jeden kod strony a formatów wiele ;)
Nawet jak przyjąć Twoją radę to i tak problem zostaje ten sam którego
pytanie dotyczyło.

Ale dzięki za zainteresowanie :)

0

Jeśli dajesz document.write, to znaczy, ze strona jest już załadowana (najpewniej about:blank, który wczytuje się około sekundy), a więc paska postępu nie zobaczysz. Albo zapisz kod strony do pliku i potem ładuj plik html z dysku (nieeleganckie rozwiązanie), albo zrób preloader we flashu. Wtedy po załadowaniu się samego początku pliku, flash będzie pokazywał postęp ściągania.

0

Dzięki thenkles
Masz racje że na samym początku wczytuje stronę jako czystą about:blank - a później uzupełniam ją kodem.
Hmmm myślałem żeby ładować głowny applet lub objekt przy pomocy
preloadera ale zmyliło mnie to że Internet Explorer ładuje bez tego i
pasek postępu jest hmm.. więc myślałem że i tak samo będzie z TWebBrowser i preloadera odrzuciłem myśląc ze da rade coś zrobić.
No nic poprubuje i zobacze :)
Dzieki jeszcze raz.

PS. A wczytywanie z osobnej przygotowanej strony odpada,
chcę mieć tylko execa jako playerka bo w przeciwnym wypadku po co exec skoro na stronkę mozna kliknąć ?

0

qrde znowu jeste eh.. ta moja upartość
Zrobiłem tak jak mi poradziłeś

W kodzie strony zawarłem linie dotyczące preloadera i objektu (appletu)
którego wczytuje , i jest tak:
Jeżeli kliknę na ten kod jako stronę WWW to w oknie przeglądarki IE
pokazuje się pasek postępu preloadera odnośnie wczytania strony,
póżniej pokazuje się inny pasek postępu odnośnie wczytywania gry.
Jest OK.

A jak ten kod wczytałem "wewnętrznie" tak jak wcześniej pisałem to"
pokazuje się pasek postępu preloadera odnośnie wczytania strony,
póżniej długo nic w zależności od wielkości gry :( i dopiero sama już uruchomoina gra.
A paska postępu dotyczącego wczytywania gry jak nie było tak nie ma :(
eh.. ogłupiałem od tego byłbym zrezygnował z tego paska ale jestem uparty i nawet dziesięć lat będę to rozgryzał :)))

1 użytkowników online, w tym zalogowanych: 0, gości: 1