Thema: Delphi Browser programmieren

Einzelnen Beitrag anzeigen

djpaull
(Gast)

n/a Beiträge
 
#22

Re: Browser programmieren

  Alt 20. Okt 2007, 17:08
Danke euch beiden. Jetzt funktioniert alles, wie es soll. Mein Browser ist soweit fertig. Ich muss nur noch den Quellcode ordentlich kommentieren und strukturieren. Werde bald den Code + Browser (zum Download) posten, für die, die sich dafür interessieren (voraussichtlich noch bis 21:00 wenn nix dazwischen kommt).
Bis denn!

Edit

So, hier ist der Code für meinen Browser. Ich hoffe, das bringt jemanden weiter.

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, jpeg, StdCtrls, ExtDlgs,URLMon, ExtCtrls, DBCtrls, ComCtrls,
  OleCtrls, SHDocVw, ddeman, ActiveX, shellapi, Menus, FileCtrl, ToolWin,
  ActnMan, ActnCtrls, ActnList, StdActns, ListActns;

type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    tabBrowser: TTabSheet;
    wbb: TWebBrowser;
    Label1: TLabel;
    edtAdresse: TEdit;
    btnWeiter: TButton;
    btnBack: TButton;
    btnGo: TButton;
    btnHome: TButton;
    btnRefresh: TButton;
    btnStop: TButton;
    mm1: TMainMenu;
    Favoriten1: TMenuItem;
    Hinzufgen1: TMenuItem;
    N8: TMenuItem;
 
    procedure FormCreate(Sender: TObject);
    procedure btnGoClick(Sender: TObject);
    procedure btnWeiterClick(Sender: TObject);
    procedure btnBackClick(Sender: TObject);
    procedure btnRefreshClick(Sender: TObject);
    procedure btnStopClick(Sender: TObject);
    procedure Hinzufgen1Click(Sender: TObject);
    Procedure ClickMe(Sender: TObject);
    procedure btnHomeClick(Sender: TObject);

  private
    StringList: TStringList;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  i: integer;

implementation


{$R *.dfm}

// Folgendes geschieht beim Erstellen der Form ---------------------------

procedure TForm1.FormCreate(Sender: TObject);
var
NewItem : TMenuItem;
  begin
    wbb.GoHome; // Zur Startseite gehen
    CreateDir('./'+'Favoriten'); // Ornder "Favoriten" für fav.ini erstellen
    StringList := TStringList.Create; // Erstellen der StrinList
    StringList.LoadFromFile('./Favoriten/fav.ini'); // fav.ini laden
    // Favoriten laden
    for i:= 0 to StringList.Count - 1 do
    begin
    newItem:=TMenuItem.Create(favoriten1);
    newItem.Caption := StringList.Strings[i];
    newItem.Tag := i;
    newItem.onClick := clickme; //oder sonstewie
    favoriten1.Add(newItem);
    end;
    // Aktuelle Adresse im Adressenfeld anzeigen
    edtadresse.Text:=(wbb.LocationURL);
  end;


// Zu Favoriten hinzufügen -----------------------------------------------

procedure TForm1.Hinzufgen1Click(Sender: TObject);

var
NewItem : TMenuItem;
begin
  NewItem := TMenuItem.Create(mm1); //Zuweisung des Parents und erstellen des MenuItems
  NewItem.Caption := edtadresse.Text; //Name des MenuItems
  NewItem.Tag := 0; //Glaube hier wird die Position des MenuItems zugewiesen
  newItem.onClick := ClickMe; //damit wird die Prozedur ClickMe ausgeführt, wenn auf das Item geklickt wird
  favoriten1.Add(newItem); //Hinzufügen zum Menupunkt "favoriten1"
  StringList.Add(edtadresse.Text);
  StringList.SaveToFile('./Favoriten/Fav.ini');
end;

// Zum Favorit gehen--------------------------------

Procedure tForm1.ClickMe(Sender: TObject);
begin
  wbb.Navigate((Sender as TMenuItem).Caption);
end;

// Zu der Aresse gehen (im IE als Goto bekannt)---------------------------

procedure TForm1.btnGoClick(Sender: TObject);
begin
  wbb.Navigate(edtadresse.Text);
  edtadresse.text:=(wbb.LocationURL);
end;

// Zur Startseite gehen --------------------------------------------------

procedure TForm1.btnHomeClick(Sender: TObject);
begin
  wbb.GoHome;
  edtadresse.text:=(wbb.LocationURL);
end;

// Seite erneut laden ----------------------------------------------------

procedure TForm1.btnRefreshClick(Sender: TObject);
begin
  wbb.Refresh;
  edtadresse.text:=(wbb.LocationURL);
end;

// Eine Seite weiter gehen -----------------------------------------------

procedure TForm1.btnWeiterClick(Sender: TObject);
begin
  wbb.GoForward;
end;

// Eine Seite zurück gehen -----------------------------------------------

procedure TForm1.btnBackClick(Sender: TObject);
begin
  wbb.GoBack;
end;

// Laden der Seite abbrechen ---------------------------------------------

procedure TForm1.btnStopClick(Sender: TObject);
begin
  wbb.Stop;
end;

end.
Der Browser hat noch Bugs:
- fav.ini wird erst beim Erstellen des ersten Favoriten kreiert. Folge - Fehlermeldung beim ersten Start.
- wenn man auf eine Seite geht, wird die Adresse im Adressenfeld erst bei der nächsten Seite, bzw. beim Refresh angezeigt.

Hauptfunktionen: Goto, Seite Vor und Zurück, Refresh, Stop, Home, Favoriten

Es war ein kleiner Schritt für die Menschheit, aber ein grosser Schritt für mich!

Danke nochmal an alle, die mir dabei geholfen haben!

Für weitere Verbesserungen/Vorschläge bin ich selbstverständlich offen. Da das Thema "Browser Programmieren" heisst, denke ich, dass es geht hier weiter zu posten.

Edit2
Hier kann man auch einen Mini-Browser herunterladen, nur so nebenbei. Hab grad durch Zufall gefunden. Er ist ein Stück besser als meiner .

mfG. NGL aka DJPaull
Angehängte Dateien
Dateityp: exe ngls_browser_265.exe (886,5 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat