Projekt przegladarki w Delphi - Karty/zakładki i ulubione

0

Witam!
Na zaliczenie muszę zrobić przegladarkę w Delphi. Wszystko pięknie działa z wyjątkiem dwóch rzeczy:

  1. Kiedy odpalam stronę w pierwszej karcie i gdy chcę odpalić drugą stronę w drugiej karcie, program nie reaguje. Po porstu otwiera mi pierwszą stronę w pierwszej karcie i koniec.
  2. Kiedy dodam kilka stron do ulubionych to chcąc daną stronę wywołać program wpisuje mi adres, np.: www.facebook.comwww.google.com Wygląda to tak, jakby program wychwytywał cały tekst, a nie pojedyncze linijki (ulubione zapisują mi się w dokumencie tekstowym).
    Byłbym wdzięczny za każdą pomoc.
    Poniżej kod źródłowy.
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, OleCtrls, SHDocVw, CheckLst,
  ComCtrls;

type
  TForm1 = class(TForm)
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    Panel2: TPanel;
    Edit1: TEdit;
    ListBox1: TListBox;
    Button1: TButton;
    Label1: TLabel;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    Button2: TButton;
    PageControl1: TPageControl;
    ListBox2: TListBox;
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton4Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure ListBox2Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure PageControl1Change(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
   TabSheet: TTabSheet;
   WebBrowser: TWebBrowser;

implementation

{$R *.dfm}

procedure TForm1.SpeedButton5Click(Sender: TObject);
begin
WebBrowser.Navigate(Edit1.Text);
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
WebBrowser.GoBack;
end;

procedure TForm1.SpeedButton2Click(Sender: TObject);
begin
WebBrowser.GoForward;
end;

procedure TForm1.SpeedButton3Click(Sender: TObject);
begin
WebBrowser.Stop;
end;

procedure TForm1.SpeedButton4Click(Sender: TObject);
begin
WebBrowser.Refresh;
end;

procedure TForm1.Button2Click(Sender: TObject);

begin
TabSheet:= TTabSheet.Create(PageControl1);

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

end;

procedure TForm1.PageControl1Change(Sender: TObject);

begin
TabSheet:= TTabSheet.Create(PageControl1);

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

end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
WebBrowser.Navigate(ListBox1.Items[ListBox1.ItemIndex]);
WebBrowser.Navigate(ListBox1.Items.Text);
ListBox1.Items.LoadFromFile('ulubione.txt');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ListBox1.Items.Add(edit1.text);
ListBox1.Items.SaveToFile('ulubione.txt');

end;

procedure TForm1.ListBox2Click(Sender: TObject);
begin
Listbox2.Items.Add(edit1.text);
Listbox2.Items.SaveToFile('hitoria.txt');
end;

procedure TForm1.SpeedButton6Click(Sender: TObject);
begin
WebBrowser.GoHome;
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
WebBrowser.Navigate(Edit1.text);
 end;
 end;

end.

dodanie znacznika <code class="delphi"> - fp

0
  1. Z tego co widzę, w każdej zakładce próbujesz na nowo tworzyć obiekty, które już istnieją jako globalne. Skąd ten "nowatorski" pomysł?
  2. Poczytaj sobie w helpie, jak posługiwać się PageControlem, TabSheetami i jak odwoływać się do obiektów na nich.
  3. Historii z ListBoxem w ogóle nie ogarniam. Sformatuj kod porządnie i opisz, jak to ma działać.
0

Przydało by się także komponenty nazwać jakoś po ludzku, a nie Button1 itd., bo nam to nic nie mówi;

I słuszna uwaga - najpierw poczytaj w jaki sposób używa się PageControl i jak się dynamicznie tworzy zakładki z dodatkowymi komponentami; Dzięki temu zażegnasz większość problemów.

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