Zakładki w TWebBrowser

0

Tworzę sobie malutką przeglądarkę w TWebBrowser i stanąłem na zakładkach(kartach). Kod zrobiłem taki że zakładki działają ale nie tak jakbym chciał. Oto kody które odpowiadają za tworzenie się kart i przenoszenia nas na ich adres:

Pierwsze to event OnNewWindow2 w TWebBrowser

var TabSheet: TTabSheet;
WebBrowser: TWebBrowser;
begin

TabSheet := TTabSheet.Create(Self);
TabSheet.Caption := 'Nowa zakładka';
TabSheet.PageControl := PageControl1;

WebBrowser:= TWebBrowser.Create(Self);
TWinControl(WebBrowser).Parent:= TabSheet;
WebBrowser.Align := alClient;

TabSheet.Show;
if (PageControl1.ActivePage.Controls[0] is TWebBrowser)
  then (PageControl1.ActivePage.Controls[0] as TWebBrowser).Navigate(pchar(adr));
ppDisp := Webbrowser1.Application;

Tu tworzy się nowa karta, i nadaję jej adres

procedure TForm1.PageControl1Change(Sender: TObject);
begin
Edit1.Text:=(PageControl1.ActivePage.Controls[0] as TWebBrowser).LocationURL;
Self.Caption:=(PageControl1.ActivePage.Controls[0] as TWebBrowser).LocationName;
WebBrowser1.Navigate(Edit1.Text);
end;

Tu zmieniamy nazwę i edit'a (pasek adresu) po klinięciu na inną kartę.
Nie satysfakcjonuje mnie natomiast ta linijka:

WebBrowser1.Navigate(Edit1.Text);

Za każdym odświeżeniem(kliknięciem na kartę) strona wczytywana jest z powrotem, a ja chciałbym by ta strona została "zapisana".

Jeszcze jedno pytanie zrobiłem system ulubionych, możemy tam dodać stronę którą chcemy zapisać. Dodaję ją do pliku a następnie wczytuje do listboxa i tu jest problem. W zdarzeniu OnClick dałem:

WebBrowser1.Navigate(ListBox1.Items.Text);

czyli przeniesienia na stronę, lecz strona się nie wczytuje bo do pasku adresu trafiają wszystkie elementy listboxa!

I ostatnie jak dodać własne menu to TWebBrowsera? Tak by były opcje "Otwórz w nowej karcie" i "Otwórz w nowym oknie"?

0

skoro wywołujesz navigate po kliknięciu to normale ze strona sie załaduje na nowo jak niechcesz zeby tak było to wywal ten kod a co do drugiego pytania to zamiast
ListBox1.Items.Text daj ListBox1.Items[ListBox1.ItemIndex]

0

Hmmm dzięki :) Ale mam teraz inne pytanie jak nadać nazwę zakładce? Zapewne procedurze ontitlechange ale jaki kod? Bo jeśli dam TabSheet.Caption := text; to nadaje nazwę aktualnej zakładki wszystkim zakładką, wiem że należy nadać nazwę aktualnej zakładce. Również jak dodać X do każdej zakładki tak by można było ją zamknąć?

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