Ĺadny brzuch
Mam kodzik:
procedure TForm1.Nowakarta1Click(Sender: TObject); var mbrowser : TMozillaBrowser; zakladka : TTabSheet; begin zakladka := TTabSheet.Create(Self); zakladka.Caption := 'Nowa zakładka'; zakladka.PageControl := PageControl1; mbrowser := TMozillaBrowser.Create(Self); mbrowser.Align := alClient; TWinControl(MozillaBrowser1).Parent:= TabSheet1; zakladka.Show; if (PageControl1.ActivePage.Controls[0] is TMozillaBrowser) then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text); end; procedure TForm1.PageControl1Change(Sender: TObject); begin Edit1.Text:=(PageControl1.ActivePage.Controls[0] as TMozillaBrowser).LocationURL; Self.Caption:=(PageControl1.ActivePage.Controls[0] as TMozillaBrowser).LocationName; end;
Jest w nim jakiś błąd, ponieważ gdy tworze nową zakładkę (program jest już uruchomiony) wywala mi errora.
Błąd
Korzystałem z artykułu na 4programmers i jednego z topiców na forum KSE i 4P
Topic o zakładkach
Z forum 4P
Art z 4P
Z góry dzięki za pomoc :D
debugger pokazuje ci jakas konkretna linie? bo tak na oko nic nie zauwazylem :)
Nic mi debugger nie pokazuje. Tylko jak tworze nową zakładkę to mi taki błąd wywala :(
Nic mi debugger nie pokazuje. Tylko jak tworze nową zakładkę to mi taki błąd wywala :(
ok, nic nie pokazuje ale sie chyba zatrzymuje na ktorejs linii?
btw ty odpalasz program w trybie debugowania (f9) czy kompilujesz i odpalasz jak kazdy inny prog?
Przez f9, zaraz sprawdzę może na jakiejś linijce się zatrzymuje
EDIT:
Nie zatrzymuje się przy żadnej z linijek
EDIT2:
Chyba mam po wyskoczeniu tego błędu nacisnąłem F8 i wskoczyło mi do linijki:
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text);
Może tu tkwi błąd??
Użytkownik prondzyk edytował ten post 03 maj 2007, 12:43
juz widze ... jako parenta browsera dajesz TabSheet1 a nie zakladka ;]
A teraz nowy bląd wyskoczył :(
Błąd
I debugger zatrzymał się na linijce
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text);
Użytkownik prondzyk edytował ten post 03 maj 2007, 13:03
A teraz nowy bląd wyskoczył :(
Błąd
I debugger zatrzymał się na linijce
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text);
to co widzisz - metoda wywołana z niewłaściwym parametrem. Byćmoże navigate wymaga WideString?
A jak to zrobić bo za bardzo się nie orientuje :P
Edit:
Już mam ale i tak źle:
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Widestring(Edit1.Text));
To samo wyskakuje
Użytkownik prondzyk edytował ten post 03 maj 2007, 17:34
procedure TMozillaBrowser.Navigate(const URL: WideString);
dziwna sprawa, powinno dzialac z WideString...
sprobuj tego co znalazlem w przykladach do TMozillaBrowser :
procedure TfGeckoTest.GeckoNav(sURL: string); var Flags, TargetFrameName, PostData, Headers : OleVariant; begin // dynamically create the browser object if not CreateGeckoObject then exit; TargetFrameName := OleCtrls.EmptyParam; Headers := EmptyParam; PostData := EmptyParam; Flags := EmptyParam; // do the actual navigation FGecko.Navigate(sURL, Flags, TargetFrameName, PostData, Headers); end;
Swoją drogą, na Twoim miejscu używałbym GeckoSDK zamiast kontrolki ActiveX :)
Gdzie ten kodzik wkleić bo on tez nie działa. Ehh same problemy
Gdzie ten kodzik wkleić bo on tez nie działa. Ehh same problemy
gdzie zechcesz sobie wklej, ale samo wklejenie ci nie pomoze - to jest tylko urywek kodu z innego programu, musisz se przystosowac do swojego ;>
Ktoś mi na 4P odpisał:
z tego co widzę w kodzie źródłowym komponentu - Navigate(const input: TStream); - podajesz zamiast TStream WideString, więc nic dziwnego że się kompilator buntuje...
Tylko nie wiem jak to zrobić(dopiero się uczę od tygodnia delphi:P)
Użytkownik prondzyk edytował ten post 05 maj 2007, 11:40
Ktoś mi na 4P odpisał:
Tylko nie wiem jak to zrobić(dopiero się uczę od tygodnia delphi:P)
nie mam pojęcia co by sie miało zaleźć w tym strumieniu - może adres strony? :| mimo wszystko ja sprawdziłem w kodzie przykładu i podałem ci to co masz wyżej - próbowałeś? :)
Spróbuj stworzyć TStringStream i wrzucić do niego stringa, może zadziała.
To ma być takie coś czy jakoś podobnie lub całkiem inaczej bo to wpiasłem też nie działa :|
if (PageControl1.ActivePage.Controls[0] is TMozillaBrowser) then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Create(TStringStream.Create(Edit1.Text));
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
procedure TForm1.Nowakarta1Click(Sender: TObject); var mbrowser : TMozillaBrowser; zakladka : TTabSheet; begin zakladka := TTabSheet.Create(Self); zakladka.Caption := 'Nowa zakładka'; zakladka.PageControl := PageControl1; mbrowser := TMozillaBrowser.Create(Self); mbrowser.Align := alClient; TWinControl(MozillaBrowser1).Parent:= TabSheet1; zakladka.Show; if (PageControl1.ActivePage.Controls[0] is TMozillaBrowser) then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text); end; procedure TForm1.PageControl1Change(Sender: TObject); begin Edit1.Text:=(PageControl1.ActivePage.Controls[0] as TMozillaBrowser).LocationURL; Self.Caption:=(PageControl1.ActivePage.Controls[0] as TMozillaBrowser).LocationName; end;
Jest w nim jakiś błąd, ponieważ gdy tworze nową zakładkę (program jest już uruchomiony) wywala mi errora.
Błąd
Korzystałem z artykułu na 4programmers i jednego z topiców na forum KSE i 4P
Topic o zakładkach
Z forum 4P
Art z 4P
Z góry dzięki za pomoc :D
debugger pokazuje ci jakas konkretna linie? bo tak na oko nic nie zauwazylem :)
Nic mi debugger nie pokazuje. Tylko jak tworze nową zakładkę to mi taki błąd wywala :(
Nic mi debugger nie pokazuje. Tylko jak tworze nową zakładkę to mi taki błąd wywala :(
ok, nic nie pokazuje ale sie chyba zatrzymuje na ktorejs linii?
btw ty odpalasz program w trybie debugowania (f9) czy kompilujesz i odpalasz jak kazdy inny prog?
Przez f9, zaraz sprawdzę może na jakiejś linijce się zatrzymuje
EDIT:
Nie zatrzymuje się przy żadnej z linijek
EDIT2:
Chyba mam po wyskoczeniu tego błędu nacisnąłem F8 i wskoczyło mi do linijki:
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text);
Może tu tkwi błąd??
Użytkownik prondzyk edytował ten post 03 maj 2007, 12:43
juz widze ... jako parenta browsera dajesz TabSheet1 a nie zakladka ;]
A teraz nowy bląd wyskoczył :(
Błąd
I debugger zatrzymał się na linijce
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text);
Użytkownik prondzyk edytował ten post 03 maj 2007, 13:03
A teraz nowy bląd wyskoczył :(
Błąd
I debugger zatrzymał się na linijce
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Edit1.Text);
to co widzisz - metoda wywołana z niewłaściwym parametrem. Byćmoże navigate wymaga WideString?
A jak to zrobić bo za bardzo się nie orientuje :P
Edit:
Już mam ale i tak źle:
then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Navigate(Widestring(Edit1.Text));
To samo wyskakuje
Użytkownik prondzyk edytował ten post 03 maj 2007, 17:34
procedure TMozillaBrowser.Navigate(const URL: WideString);
dziwna sprawa, powinno dzialac z WideString...
sprobuj tego co znalazlem w przykladach do TMozillaBrowser :
procedure TfGeckoTest.GeckoNav(sURL: string); var Flags, TargetFrameName, PostData, Headers : OleVariant; begin // dynamically create the browser object if not CreateGeckoObject then exit; TargetFrameName := OleCtrls.EmptyParam; Headers := EmptyParam; PostData := EmptyParam; Flags := EmptyParam; // do the actual navigation FGecko.Navigate(sURL, Flags, TargetFrameName, PostData, Headers); end;
Swoją drogą, na Twoim miejscu używałbym GeckoSDK zamiast kontrolki ActiveX :)
Gdzie ten kodzik wkleić bo on tez nie działa. Ehh same problemy
Gdzie ten kodzik wkleić bo on tez nie działa. Ehh same problemy
gdzie zechcesz sobie wklej, ale samo wklejenie ci nie pomoze - to jest tylko urywek kodu z innego programu, musisz se przystosowac do swojego ;>
Ktoś mi na 4P odpisał:
z tego co widzę w kodzie źródłowym komponentu - Navigate(const input: TStream); - podajesz zamiast TStream WideString, więc nic dziwnego że się kompilator buntuje...
Tylko nie wiem jak to zrobić(dopiero się uczę od tygodnia delphi:P)
Użytkownik prondzyk edytował ten post 05 maj 2007, 11:40
Ktoś mi na 4P odpisał:
Tylko nie wiem jak to zrobić(dopiero się uczę od tygodnia delphi:P)
nie mam pojęcia co by sie miało zaleźć w tym strumieniu - może adres strony? :| mimo wszystko ja sprawdziłem w kodzie przykładu i podałem ci to co masz wyżej - próbowałeś? :)
Spróbuj stworzyć TStringStream i wrzucić do niego stringa, może zadziała.
To ma być takie coś czy jakoś podobnie lub całkiem inaczej bo to wpiasłem też nie działa :|
if (PageControl1.ActivePage.Controls[0] is TMozillaBrowser) then (PageControl1.ActivePage.Controls[0] as TMozillaBrowser).Create(TStringStream.Create(Edit1.Text));