AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Browser programmieren
Thema durchsuchen
Ansicht
Themen-Optionen

Browser programmieren

Ein Thema von djpaull · begonnen am 18. Okt 2007 · letzter Beitrag vom 18. Apr 2008
 
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
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz