begin process at 2010 02 10 13:37:09
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseau & Internet

 > MOZILLA FIREFOX EN DELPHI

MOZILLA FIREFOX EN DELPHI


 Information sur la source

Attention: ce code a été marqué comme suspect par un admin, il peut donc être dangereux. Ce code a été laissé sur le site dans un but pédagogique, ne l'exécutez pas si vous ne comprenez pas son contenu!
Note :
8,25 / 10 - par 4 personnes
8,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseau & Internet Classé sous :source, firefox, internet, navigateur, webbrowser Niveau :Initié Date de création :08/01/2005 Date de mise à jour :09/01/2005 19:41:24 Vu / téléchargé :22 612 / 1 865

Auteur : JulioDelphi

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (23)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Hello,
Oui vous avez bien lu "Mozilla Firefox en Delphi" :), j'était a la recherche d'un TWebBrowser non basé sur IE et je suis tombé sur ça !
Je n'ai pas pour habitude de poster une source qui n'est pas de moi mais là, vu la qualité du code, je me permets. Les notes données a cette source ne seront pas destinées a moi bien sur, j'ai en avance félicité par mail le créateur de la source :
Dave Murray <irongut at vodafone dot net>
Le composant TMozillaControl est donc là pour les personnes qui sont allergiques à I.E. et qui ne veulent donc pas utiliser le TWebBrowser. De toute façon, je vois mal qqn faire un MOzilla avec un TWebBrowser.. lol

Source

  • MainForm.pas :
  • unit MainForm;
  • {Main Form unit for Gecko Browser, a demo of embedding Gecko in Delphi 5+ apps}
  • {v1.0 Written by Dave Murray <irongut@vodafone.net>, October - November 2003}
  • {v1.1 Written by Dave Murray, March 2004}
  • {v1.2 Written by Dave Murray, April + July 2004}
  • {Gecko Browser v1.2 was written using Mozilla ActiveX Control v1.7.1}
  • (* ***** BEGIN LICENSE BLOCK *****
  • * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  • *
  • * The contents of this file are subject to the Mozilla Public License Version
  • * 1.1 (the "License"); you may not use this file except in compliance with
  • * the License. You may obtain a copy of the License at
  • * http://www.mozilla.org/MPL/
  • *
  • * Software distributed under the License is distributed on an "AS IS" basis,
  • * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  • * for the specific language governing rights and limitations under the
  • * License.
  • *
  • * The Original Code is Gecko Browser framework.
  • *
  • * The Initial Developer of the Original Code is
  • * Conspiracy Software.
  • * Portions created by the Initial Developer are Copyright (C) 2003 - 2004
  • * the Initial Developer. All Rights Reserved.
  • *
  • * Contributor(s):
  • * Dave Murray <irongut@vodafone.net>
  • * Sterling Bates <sblistserv@bigbangco.com>
  • *
  • * Alternatively, the contents of this file may be used under the terms of
  • * either the GNU General Public License Version 2 or later (the "GPL"), or
  • * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  • * in which case the provisions of the GPL or the LGPL are applicable instead
  • * of those above. If you wish to allow use of your version of this file only
  • * under the terms of either the GPL or the LGPL, and not to allow others to
  • * use your version of this file under the terms of the MPL, indicate your
  • * decision by deleting the provisions above and replace them with the notice
  • * and other provisions required by the GPL or the LGPL. If you do not delete
  • * the provisions above, a recipient may use your version of this file under
  • * the terms of any one of the MPL, the GPL or the LGPL.
  • *
  • * ***** END LICENSE BLOCK ***** *)
  • interface
  • uses
  • Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  • Dialogs, ComCtrls, StdCtrls, ToolWin, ExtCtrls, ImgList, Menus, OleCtrls,
  • ActiveX, MOZILLACONTROLLib_TLB;
  • type
  • TfrmMain = class(TForm)
  • mnmnuMain: TMainMenu;
  • mFile: TMenuItem;
  • mOpen: TMenuItem;
  • mSaveAs: TMenuItem;
  • N1: TMenuItem;
  • mPageSetup: TMenuItem;
  • mPrintPreview: TMenuItem;
  • mPrint: TMenuItem;
  • N2: TMenuItem;
  • mExit: TMenuItem;
  • mEdit: TMenuItem;
  • mCopy: TMenuItem;
  • mClearSelection: TMenuItem;
  • mSelectAll: TMenuItem;
  • N4: TMenuItem;
  • mPreferences: TMenuItem;
  • mGo: TMenuItem;
  • mBack: TMenuItem;
  • mForward: TMenuItem;
  • mStop: TMenuItem;
  • mReload: TMenuItem;
  • N3: TMenuItem;
  • mHome: TMenuItem;
  • mHelp: TMenuItem;
  • mAbout: TMenuItem;
  • pnlBtnNav: TPanel;
  • tlbrButtons: TToolBar;
  • tlbtnBack: TToolButton;
  • tlbtnForward: TToolButton;
  • tlbtnStop: TToolButton;
  • tlbtnReload: TToolButton;
  • tlbtnHome: TToolButton;
  • tlbtnSplit1: TToolButton;
  • tlbtnPrint: TToolButton;
  • tlbtnSplit2: TToolButton;
  • tlbtnProperties: TToolButton;
  • tlbtnSplit3: TToolButton;
  • edtAddress: TEdit;
  • pnlThrobber: TPanel;
  • nmtThrobber: TAnimate;
  • pnlBrowser: TPanel;
  • stsbrStatus: TStatusBar;
  • imglstMainMenu: TImageList;
  • imglstButtons: TImageList;
  • imglstButtonsHot: TImageList;
  • imglstButtonsDisabled: TImageList;
  • prgrssbrProgress: TProgressBar;
  • mzGecko: TMozillaBrowser;
  • {### FORM METHODS ###}
  • procedure FormCreate(Sender: TObject);
  • procedure FormShow(Sender: TObject);
  • {### MENUITEM METHODS}
  • procedure mOpenClick(Sender: TObject);
  • procedure mSaveAsClick(Sender: TObject);
  • procedure mPageSetupClick(Sender: TObject);
  • procedure mPrintPreviewClick(Sender: TObject);
  • procedure mPrintClick(Sender: TObject);
  • procedure mExitClick(Sender: TObject);
  • procedure mCopyClick(Sender: TObject);
  • procedure mClearSelectionClick(Sender: TObject);
  • procedure mSelectAllClick(Sender: TObject);
  • procedure mPreferencesClick(Sender: TObject);
  • procedure mBackClick(Sender: TObject);
  • procedure mForwardClick(Sender: TObject);
  • procedure mStopClick(Sender: TObject);
  • procedure mReloadClick(Sender: TObject);
  • procedure mHomeClick(Sender: TObject);
  • procedure mAboutClick(Sender: TObject);
  • {### MOZILLA CONTROL METHODS ###}
  • procedure mzGeckoStatusTextChange(Sender: TObject; const Text: WideString);
  • procedure mzGeckoProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
  • procedure mzGeckoCommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
  • procedure mzGeckoDownloadBegin(Sender: TObject);
  • procedure mzGeckoDownloadComplete(Sender: TObject);
  • {### MISC METHODS ###}
  • procedure edtAddressKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  • private
  • { Private declarations }
  • function CharReplace(var S: AnsiString; const Search, Replace: AnsiChar): Integer;
  • public
  • { Public declarations }
  • end;
  • var
  • frmMain: TfrmMain;
  • implementation
  • {$R *.dfm}
  • uses CommCtrl, Globals, OpenForm, PrefsForm;
  • var
  • ON_START : boolean;
  • {### FORM METHODS ###}
  • procedure TfrmMain.FormCreate(Sender: TObject);
  • {initialise...}
  • begin
  • {setup window}
  • Application.Title := PROGRAM_TITLE;
  • Self.Caption := PROGRAM_TITLE;
  • {move progress bar to status bar's first panel}
  • prgrssbrProgress.Parent := stsbrStatus;
  • prgrssbrProgress.Top := 2;
  • prgrssbrProgress.Left := 2;
  • prgrssbrProgress.Height := stsbrStatus.Height - 2;
  • prgrssbrProgress.Width := stsbrStatus.Panels[0].Width - 2;
  • prgrssbrProgress.Position := 0;
  • prgrssbrProgress.Refresh;
  • {setup vars}
  • ON_START := true;
  • end; {procedure TfrmMain.FormCreate}
  • procedure TfrmMain.FormShow(Sender: TObject);
  • {navigate to start page if first show}
  • begin
  • if ON_START then begin
  • ON_START := false;
  • {show start page}
  • case START_TYPE of
  • // 0 : {blank page}
  • 1 : mzGecko.Navigate(WideString(HOME_ADDRESS)); {home page}
  • 2 : mzGecko.Navigate(WideString(START_ADDRESS)); {custom start page}
  • end; {case START_TYPE..}
  • end; {if ON_START..}
  • end; {procedure TfrmMain.FormShow}
  • {### MENUITEM METHODS}
  • procedure TfrmMain.mOpenClick(Sender: TObject);
  • {open web page from URL or file}
  • var
  • Address : string;
  • frmOpen: TfrmOpen;
  • begin
  • {show open page dialog - frmOpen}
  • frmOpen := TfrmOpen.Create(self);
  • try
  • if (frmOpen.ShowModal = mrOk) then begin
  • {retrieve address}
  • Address := frmOpen.edtURL.Text;
  • if not(trim(Address) = '') then begin
  • {navigate to address}
  • CharReplace(Address, '\', '/'); {correct bug with relative links + images}
  • mzGecko.Navigate(WideString(Address));
  • end; {if not(Address = ''..}
  • end; {if mrOk..}
  • finally
  • {free dialog}
  • frmOpen.Free;
  • end; {try..finally..}
  • end; {procedure TfrmMain.mOpenClick}
  • procedure TfrmMain.mSaveAsClick(Sender: TObject);
  • {show Save As dialog}
  • {Control <= v1.6: OLECMDEXECOPT_PROMPTUSER causes EOleException due to bug in flag
  • tests, use OLECMDEXECOPT_DODEFAULT instead; Bugzilla 2250454.
  • Control v1.7: Flag tests fixed so can use OLECMDEXECOPT_PROMPTUSER; Bugzilla 2250454
  • fixed.}
  • var
  • PageFilename : OleVariant;
  • begin
  • try
  • {ensure not busy}
  • if not(mzGecko.Busy) then begin
  • PageFilename := mzGecko.LocationName + '.html';
  • {show save as dialog}
  • mzGecko.ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER {OLECMDEXECOPT_DODEFAULT}, PageFilename);
  • end; {if not Busy..}
  • except
  • {handle exceptions}
  • on E : Exception do
  • MessageDlg('ERROR: Unable to show Save As dialog. ' + #13 + E.ClassName
  • + ': ' + E.Message + '.', mtError, [mbOk], 0);
  • end; {try..except..}
  • end; {procedure TfrmMain.mSaveAsClick}
  • procedure TfrmMain.mPageSetupClick(Sender: TObject);
  • {show Page Setup dialog}
  • {Control <= v1.6: OLECMDEXECOPT_PROMPTUSER causes EOleException due to bug in flag tests,
  • use OLECMDEXECOPT_DODEFAULT instead + get 'not implemented' dialog; Bugzilla 2250454.
  • Control v1.7: Flag tests fixed so can use OLECMDEXECOPT_PROMPTUSER and Page Setup
  • has been implemented; Bugzilla 2250454 fixed.}
  • begin
  • try
  • {ensure not busy or printing before showing dialog}
  • if not(mzGecko.Busy) and (mzGecko.QueryStatusWB(OLECMDID_PAGESETUP) > 0)
  • {show page setup dialog}
  • then mzGecko.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER {OLECMDEXECOPT_DODEFAULT});
  • except
  • {handle exceptions}
  • on E : Exception do
  • MessageDlg('ERROR: Unable to show Page Setup dialog. ' + #13 + E.ClassName
  • + ': ' + E.Message + '.', mtError, [mbOk], 0);
  • end; {try..except..}
  • end; {procedure TfrmMain.mPageSetupClick}
  • procedure TfrmMain.mPrintPreviewClick(Sender: TObject);
  • {show Print Preview window}
  • {OLECMDID_PRINTPREVIEW not currently supported in Mozilla Control although
  • QueryStatusWB returns OLECMDF_SUPPORTED so disable menu item.
  • OLECMDID_PRINTPREVIEW not defined in MozillaBrowser.h; Bugzilla 214884.}
  • begin
  • try
  • {ensure not busy or printing before showing dialog}
  • if not(mzGecko.Busy) and (mzGecko.QueryStatusWB(OLECMDID_PRINTPREVIEW) > 0)
  • {show Print Preview window}
  • then mzGecko.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER);
  • except
  • {handle exceptions}
  • on E : Exception do
  • MessageDlg('ERROR: Unable to show Print Preview dialog. ' + #13 + E.ClassName
  • + ': ' + E.Message + '.', mtError, [mbOk], 0);
  • end; {try..except..}
  • end; {procedure TfrmMain.mPrintPreviewClick}
  • procedure TfrmMain.mPrintClick(Sender: TObject);
  • {print current page}
  • begin
  • try
  • {ensure not busy or printing before showing dialog}
  • if not(mzGecko.Busy) and (mzGecko.QueryStatusWB(OLECMDID_PRINT) > 0)
  • {show Print dialog}
  • then mzGecko.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
  • except
  • {handle exceptions}
  • on E : Exception do
  • MessageDlg('ERROR: Unable to show Print dialog. ' + #13 + E.ClassName
  • + ': ' + E.Message + '.', mtError, [mbOk], 0);
  • end; {try..except..}
  • end; {procedure TfrmMain.mPrintClick}
  • procedure TfrmMain.mExitClick(Sender: TObject);
  • {close application}
  • begin
  • {close frmMain - closes app}
  • Self.Close;
  • end; {procedure TfrmMain.mExitClick}
  • procedure TfrmMain.mCopyClick(Sender: TObject);
  • {copy selection to clipboard}
  • begin
  • try
  • {copy selection}
  • mzGecko.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT);
  • except
  • {handle exceptions}
  • on E : Exception do begin
  • MessageDlg('ERROR Unable to Copy selected text to clipboard.' + #13 + E.ClassName
  • + ': ' + E.Message + '.', mtError, [mbOk], 0);
  • end; {on Exception..}
  • end; {try..except..}
  • end; {procedure TfrmMain.mCopyClick}
  • procedure TfrmMain.mClearSelectionClick(Sender: TObject);
  • {clear selection}
  • {OLECMDID_CLEARSELECTION not currently supported in Mozilla Control although
  • QueryStatusWB returns OLECMDF_SUPPORTED so disable menu item.
  • OLECMDID_CLEARSELECTION not defined in MozillaBrowser.h; Bugzilla 214884.}
  • begin
  • try
  • {clear selection}
  • mzGecko.ExecWB(OLECMDID_CLEARSELECTION, OLECMDEXECOPT_DODEFAULT);
  • except
  • {handle exceptions}
  • on E : Exception do begin
  • MessageDlg('ERROR: Unable to Clear the current selection.' + #13 + E.ClassName
  • + ': ' + E.Message + '.', mtError, [mbOk], 0);
  • end; {on Exception..}
  • end; {try..except..}
  • end; {procedure TfrmMain.mClearSelectionClick}
  • procedure TfrmMain.mSelectAllClick(Sender: TObject);
  • {select entire page}
  • begin
  • try
  • {select all}
  • mzGecko.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT);
  • except
  • {handle exceptions}
  • on E : Exception do begin
  • MessageDlg('ERROR Unable to Select All text on page.' + #13 + E.ClassName
  • + ': ' + E.Message + '.', mtError, [mbOk], 0);
  • end; {on Exception..}
  • end; {try..except..}
  • end; {procedure TfrmMain.mSelectAllClick}
  • procedure TfrmMain.mPreferencesClick(Sender: TObject);
  • {edit Gecko Browser prefs}
  • var
  • frmPrefs: TfrmPrefs;
  • begin
  • {show Preferences dialog - frmPrefs}
  • frmPrefs := TfrmPrefs.Create(self);
  • try
  • if (frmPrefs.ShowModal = mrOk) then begin
  • {correct addresses}
  • CharReplace(START_ADDRESS, '\', '/'); {correct bug with relative links + images}
  • CharReplace(HOME_ADDRESS, '\', '/'); {correct bug with relative links + images}
  • end; {if mrOk..}
  • finally
  • {free dialog}
  • frmPrefs.Free;
  • end; {try..finally..}
  • end; {procedure TfrmMain.mPreferencesClick}
  • procedure TfrmMain.mBackClick(Sender: TObject);
  • {go Back a page}
  • begin
  • {back}
  • mzGecko.GoBack;
  • end; {procedure TfrmMain.mBackClick}
  • procedure TfrmMain.mForwardClick(Sender: TObject);
  • {go Forward a page}
  • begin
  • {forward}
  • mzGecko.GoForward;
  • end; {procedure TfrmMain.mForwardClick}
  • procedure TfrmMain.mStopClick(Sender: TObject);
  • {stop loading page}
  • begin
  • {stop}
  • mzGecko.Stop;
  • end; {procedure TfrmMain.mStopClick}
  • procedure TfrmMain.mReloadClick(Sender: TObject);
  • {reload page}
  • begin
  • {refresh}
  • mzGecko.Refresh;
  • end; {procedure TfrmMain.mReloadClick}
  • procedure TfrmMain.mHomeClick(Sender: TObject);
  • {go to Home page}
  • begin
  • {navigate to Gecko Browser Home}
  • mzGecko.Navigate(WideString(HOME_ADDRESS));
  • end; {procedure TfrmMain.mHomeClick}
  • procedure TfrmMain.mAboutClick(Sender: TObject);
  • {show simple About dialog}
  • begin
  • MessageDlg(PROGRAM_TITLE + #13 + '(c) 2003 - 2004 Conspiracy Software' + #13
  • + 'A demo of embedding Gecko (Mozilla) in Delphi applications.' + #13
  • + 'Written by Dave Murray <irongut@vodafone.net>.' + #13
  • + PROGRAM_TITLE + ' was written using ' + MOZILLA_VERSION + '.',
  • mtInformation, [mbOk], 0);
  • end; {procedure TfrmMain.About1Click}
  • {### MOZILLA CONTROL METHODS ###}
  • procedure TfrmMain.mzGeckoStatusTextChange(Sender: TObject; const Text: WideString);
  • {show status text in stsbrStatus}
  • begin
  • stsbrStatus.Panels[1].Text := Text;
  • end; {procedure TfrmMain.mzGeckoStatusTextChange}
  • procedure TfrmMain.mzGeckoProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
  • {show download progress}
  • begin
  • {new code suggested by Sterling Bates, see Bugzilla #225041}
  • prgrssbrProgress.Position := Round((Progress / ProgressMax) * 100);
  • prgrssbrProgress.Max := 100;
  • end; {procedure TfrmMain.mzGeckoProgressChange}
  • procedure TfrmMain.mzGeckoCommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
  • {fired when user navigates, use to enable/disable navigation buttons}
  • const
  • {from SHDocVw.pas}
  • CSC_NAVIGATEFORWARD = $00000001;
  • CSC_NAVIGATEBACK = $00000002;
  • begin
  • if (Command = CSC_NAVIGATEFORWARD) then begin
  • {enable / disable Forward button + menu item}
  • tlbtnForward.Enabled := Enable;
  • mForward.Enabled := Enable;
  • end {if Command = CSC_NAVIGATEFORWARD}
  • else if (Command = CSC_NAVIGATEBACK) then begin
  • {enable / disabel Back button + menu item}
  • tlbtnBack.Enabled := Enable;
  • mBack.Enabled := Enable;
  • end; {else if..}
  • end; {procedure TfrmMain.mzGeckoCommandStateChange}
  • procedure TfrmMain.mzGeckoDownloadBegin(Sender: TObject);
  • {begining navigation, start throbber}
  • begin
  • nmtThrobber.Active := true;
  • end; {procedure TfrmMain.mzGeckoDownloadBegin}
  • procedure TfrmMain.mzGeckoDownloadComplete(Sender: TObject);
  • {ending navigation, stop throbber + ensure edtAddress shows URL}
  • var
  • URL : string;
  • begin
  • URL := mzGecko.LocationURL;
  • if not(edtAddress.Text = URL) then edtAddress.Text := URL;
  • nmtThrobber.Active := false;
  • prgrssbrProgress.Position := 0;
  • end; {procedure TfrmMain.mzGeckoDownloadComplete}
  • {### MISC METHODS ###}
  • procedure TfrmMain.edtAddressKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  • {navigate to current address}
  • begin
  • if (Key = VK_RETURN) then mzGecko.Navigate(WideString(edtAddress.Text));
  • end; {procedure TfrmMain.edtAddressKeyDown}
  • {### PRIVATE METHODS ###}
  • function TfrmMain.CharReplace(var S: AnsiString; const Search, Replace: AnsiChar): Integer;
  • {Reproduced from JEDI Code Library JclStrings.pas for demonstration purposes.}
  • {http://www.delphi-jedi.org/}
  • var
  • P: PAnsiChar;
  • begin
  • Result := 0;
  • if Search <> Replace then begin
  • UniqueString(S);
  • P := PAnsiChar(S);
  • while P^ <> #0 do begin
  • if P^ = Search then begin
  • P^ := Replace;
  • Inc(Result);
  • end; {if P^ = ..}
  • Inc(P);
  • end; {while..}
  • end; {if Search <> Replace..}
  • end; {function TfrmMain.CharReplace}
  • initialization
  • OleInitialize(nil);
  • finalization
  • OleUninitialize;
  • end.
MainForm.pas :

unit MainForm;
{Main Form unit for Gecko Browser, a demo of embedding Gecko in Delphi 5+ apps}
{v1.0 Written by Dave Murray <irongut@vodafone.net>, October - November 2003}
{v1.1 Written by Dave Murray, March 2004}
{v1.2 Written by Dave Murray, April + July 2004}
{Gecko Browser v1.2 was written using Mozilla ActiveX Control v1.7.1}

(* ***** BEGIN LICENSE BLOCK *****
 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
 *
 * The contents of this file are subject to the Mozilla Public License Version
 * 1.1 (the "License"); you may not use this file except in compliance with
 * the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS" basis,
 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
 * for the specific language governing rights and limitations under the
 * License.
 *
 * The Original Code is Gecko Browser framework.
 *
 * The Initial Developer of the Original Code is
 * Conspiracy Software.
 * Portions created by the Initial Developer are Copyright (C) 2003 - 2004
 * the Initial Developer. All Rights Reserved.
 *
 * Contributor(s):
 *   Dave Murray <irongut@vodafone.net>
 *   Sterling Bates <sblistserv@bigbangco.com>
 *
 * Alternatively, the contents of this file may be used under the terms of
 * either the GNU General Public License Version 2 or later (the "GPL"), or
 * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
 * in which case the provisions of the GPL or the LGPL are applicable instead
 * of those above. If you wish to allow use of your version of this file only
 * under the terms of either the GPL or the LGPL, and not to allow others to
 * use your version of this file under the terms of the MPL, indicate your
 * decision by deleting the provisions above and replace them with the notice
 * and other provisions required by the GPL or the LGPL. If you do not delete
 * the provisions above, a recipient may use your version of this file under
 * the terms of any one of the MPL, the GPL or the LGPL.
 *
 * ***** END LICENSE BLOCK ***** *)


interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, StdCtrls, ToolWin, ExtCtrls, ImgList, Menus, OleCtrls,
  ActiveX, MOZILLACONTROLLib_TLB;

type
  TfrmMain = class(TForm)
    mnmnuMain: TMainMenu;
      mFile: TMenuItem;
        mOpen: TMenuItem;
        mSaveAs: TMenuItem;
        N1: TMenuItem;
        mPageSetup: TMenuItem;
        mPrintPreview: TMenuItem;
        mPrint: TMenuItem;
        N2: TMenuItem;
        mExit: TMenuItem;
      mEdit: TMenuItem;
        mCopy: TMenuItem;
        mClearSelection: TMenuItem;
        mSelectAll: TMenuItem;
        N4: TMenuItem;
        mPreferences: TMenuItem;
      mGo: TMenuItem;
        mBack: TMenuItem;
        mForward: TMenuItem;
        mStop: TMenuItem;
        mReload: TMenuItem;
        N3: TMenuItem;
        mHome: TMenuItem;
      mHelp: TMenuItem;
        mAbout: TMenuItem;
    pnlBtnNav: TPanel;
      tlbrButtons: TToolBar;
        tlbtnBack: TToolButton;
        tlbtnForward: TToolButton;
        tlbtnStop: TToolButton;
        tlbtnReload: TToolButton;
        tlbtnHome: TToolButton;
        tlbtnSplit1: TToolButton;
        tlbtnPrint: TToolButton;
        tlbtnSplit2: TToolButton;
        tlbtnProperties: TToolButton;
        tlbtnSplit3: TToolButton;
      edtAddress: TEdit;
      pnlThrobber: TPanel;
        nmtThrobber: TAnimate;
    pnlBrowser: TPanel;
    stsbrStatus: TStatusBar;
    imglstMainMenu: TImageList;
    imglstButtons: TImageList;
    imglstButtonsHot: TImageList;
    imglstButtonsDisabled: TImageList;
    prgrssbrProgress: TProgressBar;
    mzGecko: TMozillaBrowser;
    {### FORM METHODS ###}
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    {### MENUITEM METHODS}
    procedure mOpenClick(Sender: TObject);
    procedure mSaveAsClick(Sender: TObject);
    procedure mPageSetupClick(Sender: TObject);
    procedure mPrintPreviewClick(Sender: TObject);
    procedure mPrintClick(Sender: TObject);
    procedure mExitClick(Sender: TObject);
    procedure mCopyClick(Sender: TObject);
    procedure mClearSelectionClick(Sender: TObject);
    procedure mSelectAllClick(Sender: TObject);
    procedure mPreferencesClick(Sender: TObject);
    procedure mBackClick(Sender: TObject);
    procedure mForwardClick(Sender: TObject);
    procedure mStopClick(Sender: TObject);
    procedure mReloadClick(Sender: TObject);
    procedure mHomeClick(Sender: TObject);
    procedure mAboutClick(Sender: TObject);
    {### MOZILLA CONTROL METHODS ###}
    procedure mzGeckoStatusTextChange(Sender: TObject; const Text: WideString);
    procedure mzGeckoProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
    procedure mzGeckoCommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
    procedure mzGeckoDownloadBegin(Sender: TObject);
    procedure mzGeckoDownloadComplete(Sender: TObject);
    {### MISC METHODS ###}
    procedure edtAddressKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
  private
    { Private declarations }
    function CharReplace(var S: AnsiString; const Search, Replace: AnsiChar): Integer;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

uses CommCtrl, Globals, OpenForm, PrefsForm;


var
  ON_START : boolean;


{### FORM METHODS ###}


procedure TfrmMain.FormCreate(Sender: TObject);
{initialise...}
begin
  {setup window}
  Application.Title := PROGRAM_TITLE;
  Self.Caption := PROGRAM_TITLE;
  {move progress bar to status bar's first panel}
  prgrssbrProgress.Parent := stsbrStatus;
  prgrssbrProgress.Top := 2;
  prgrssbrProgress.Left := 2;
  prgrssbrProgress.Height := stsbrStatus.Height - 2;
  prgrssbrProgress.Width := stsbrStatus.Panels[0].Width - 2;
  prgrssbrProgress.Position := 0;
  prgrssbrProgress.Refresh;
  {setup vars}
  ON_START := true;
end; {procedure TfrmMain.FormCreate}

procedure TfrmMain.FormShow(Sender: TObject);
{navigate to start page if first show}
begin
  if ON_START then begin
    ON_START := false;
    {show start page}
    case START_TYPE of
  //    0 : {blank page}
      1 : mzGecko.Navigate(WideString(HOME_ADDRESS)); {home page}
      2 : mzGecko.Navigate(WideString(START_ADDRESS)); {custom start page}
      end; {case START_TYPE..}
    end; {if ON_START..}
end; {procedure TfrmMain.FormShow}


{### MENUITEM METHODS}


procedure TfrmMain.mOpenClick(Sender: TObject);
{open web page from URL or file}
var
  Address : string;
  frmOpen: TfrmOpen;
begin
  {show open page dialog - frmOpen}
  frmOpen := TfrmOpen.Create(self);
  try
    if (frmOpen.ShowModal = mrOk) then begin
      {retrieve address}
      Address := frmOpen.edtURL.Text;
      if not(trim(Address) = '') then begin
        {navigate to address}
        CharReplace(Address, '\', '/'); {correct bug with relative links + images}
        mzGecko.Navigate(WideString(Address));
        end; {if not(Address = ''..}
      end; {if mrOk..}
  finally
    {free dialog}
    frmOpen.Free;
    end; {try..finally..}
end; {procedure TfrmMain.mOpenClick}

procedure TfrmMain.mSaveAsClick(Sender: TObject);
{show Save As dialog}
{Control <= v1.6: OLECMDEXECOPT_PROMPTUSER causes EOleException due to bug in flag
 tests, use OLECMDEXECOPT_DODEFAULT instead; Bugzilla 2250454.
 Control v1.7: Flag tests fixed so can use OLECMDEXECOPT_PROMPTUSER; Bugzilla 2250454
 fixed.}
var
  PageFilename : OleVariant;
begin
  try
    {ensure not busy}
    if not(mzGecko.Busy) then begin
      PageFilename := mzGecko.LocationName + '.html';
      {show save as dialog}
      mzGecko.ExecWB(OLECMDID_SAVEAS, OLECMDEXECOPT_PROMPTUSER {OLECMDEXECOPT_DODEFAULT}, PageFilename);
      end; {if not Busy..}
  except
    {handle exceptions}
    on E : Exception do
      MessageDlg('ERROR: Unable to show Save As dialog. ' + #13 + E.ClassName
        + ': ' + E.Message + '.', mtError, [mbOk], 0);
    end; {try..except..}
end; {procedure TfrmMain.mSaveAsClick}

procedure TfrmMain.mPageSetupClick(Sender: TObject);
{show Page Setup dialog}
{Control <= v1.6: OLECMDEXECOPT_PROMPTUSER causes EOleException due to bug in flag tests,
 use OLECMDEXECOPT_DODEFAULT instead + get 'not implemented' dialog; Bugzilla 2250454.
 Control v1.7: Flag tests fixed so can use OLECMDEXECOPT_PROMPTUSER and Page Setup
 has been implemented; Bugzilla 2250454 fixed.}
begin
  try
    {ensure not busy or printing before showing dialog}
    if not(mzGecko.Busy) and (mzGecko.QueryStatusWB(OLECMDID_PAGESETUP) > 0)
      {show page setup dialog}
      then mzGecko.ExecWB(OLECMDID_PAGESETUP, OLECMDEXECOPT_PROMPTUSER {OLECMDEXECOPT_DODEFAULT});
  except
    {handle exceptions}
    on E : Exception do
      MessageDlg('ERROR: Unable to show Page Setup dialog. ' + #13 + E.ClassName
        + ': ' + E.Message + '.', mtError, [mbOk], 0);
    end; {try..except..}
end; {procedure TfrmMain.mPageSetupClick}

procedure TfrmMain.mPrintPreviewClick(Sender: TObject);
{show Print Preview window}
{OLECMDID_PRINTPREVIEW not currently supported in Mozilla Control although
 QueryStatusWB returns OLECMDF_SUPPORTED so disable menu item.
 OLECMDID_PRINTPREVIEW not defined in MozillaBrowser.h; Bugzilla 214884.}
begin
  try
    {ensure not busy or printing before showing dialog}
    if not(mzGecko.Busy) and (mzGecko.QueryStatusWB(OLECMDID_PRINTPREVIEW) > 0)
      {show Print Preview window}
      then mzGecko.ExecWB(OLECMDID_PRINTPREVIEW, OLECMDEXECOPT_PROMPTUSER);
  except
    {handle exceptions}
    on E : Exception do
      MessageDlg('ERROR: Unable to show Print Preview dialog. ' + #13 + E.ClassName
        + ': ' + E.Message + '.', mtError, [mbOk], 0);
    end; {try..except..}
end; {procedure TfrmMain.mPrintPreviewClick}

procedure TfrmMain.mPrintClick(Sender: TObject);
{print current page}
begin
  try
    {ensure not busy or printing before showing dialog}
    if not(mzGecko.Busy) and (mzGecko.QueryStatusWB(OLECMDID_PRINT) > 0)
      {show Print dialog}
      then mzGecko.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_PROMPTUSER);
  except
    {handle exceptions}
    on E : Exception do
      MessageDlg('ERROR: Unable to show Print dialog. ' + #13 + E.ClassName
        + ': ' + E.Message + '.', mtError, [mbOk], 0);
    end; {try..except..}
end; {procedure TfrmMain.mPrintClick}

procedure TfrmMain.mExitClick(Sender: TObject);
{close application}
begin
  {close frmMain - closes app}
  Self.Close;
end; {procedure TfrmMain.mExitClick}

procedure TfrmMain.mCopyClick(Sender: TObject);
{copy selection to clipboard}
begin
  try
    {copy selection}
    mzGecko.ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT);
  except
    {handle exceptions}
    on E : Exception do begin
      MessageDlg('ERROR Unable to Copy selected text to clipboard.' + #13 + E.ClassName
        + ': ' + E.Message + '.', mtError, [mbOk], 0);
      end; {on Exception..}
    end; {try..except..}
end; {procedure TfrmMain.mCopyClick}

procedure TfrmMain.mClearSelectionClick(Sender: TObject);
{clear selection}
{OLECMDID_CLEARSELECTION not currently supported in Mozilla Control although
 QueryStatusWB returns OLECMDF_SUPPORTED so disable menu item.
 OLECMDID_CLEARSELECTION not defined in MozillaBrowser.h; Bugzilla 214884.}
begin
  try
    {clear selection}
    mzGecko.ExecWB(OLECMDID_CLEARSELECTION, OLECMDEXECOPT_DODEFAULT);
  except
    {handle exceptions}
    on E : Exception do begin
      MessageDlg('ERROR: Unable to Clear the current selection.' + #13 + E.ClassName
        + ': ' + E.Message + '.', mtError, [mbOk], 0);
      end; {on Exception..}
    end; {try..except..}
end; {procedure TfrmMain.mClearSelectionClick}

procedure TfrmMain.mSelectAllClick(Sender: TObject);
{select entire page}
begin
  try
    {select all}
    mzGecko.ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT);
  except
    {handle exceptions}
    on E : Exception do begin
      MessageDlg('ERROR Unable to Select All text on page.' + #13 + E.ClassName
        + ': ' + E.Message + '.', mtError, [mbOk], 0);
      end; {on Exception..}
    end; {try..except..}
end; {procedure TfrmMain.mSelectAllClick}

procedure TfrmMain.mPreferencesClick(Sender: TObject);
{edit Gecko Browser prefs}
var
  frmPrefs: TfrmPrefs;
begin
  {show Preferences dialog - frmPrefs}
  frmPrefs := TfrmPrefs.Create(self);
  try
    if (frmPrefs.ShowModal = mrOk) then begin
      {correct addresses}
      CharReplace(START_ADDRESS, '\', '/'); {correct bug with relative links + images}
      CharReplace(HOME_ADDRESS, '\', '/'); {correct bug with relative links + images}
      end; {if mrOk..}
  finally
    {free dialog}
    frmPrefs.Free;
    end; {try..finally..}
end; {procedure TfrmMain.mPreferencesClick}

procedure TfrmMain.mBackClick(Sender: TObject);
{go Back a page}
begin
  {back}
  mzGecko.GoBack;
end; {procedure TfrmMain.mBackClick}

procedure TfrmMain.mForwardClick(Sender: TObject);
{go Forward a page}
begin
  {forward}
  mzGecko.GoForward;
end; {procedure TfrmMain.mForwardClick}

procedure TfrmMain.mStopClick(Sender: TObject);
{stop loading page}
begin
  {stop}
  mzGecko.Stop;
end; {procedure TfrmMain.mStopClick}

procedure TfrmMain.mReloadClick(Sender: TObject);
{reload page}
begin
  {refresh}
  mzGecko.Refresh;
end; {procedure TfrmMain.mReloadClick}

procedure TfrmMain.mHomeClick(Sender: TObject);
{go to Home page}
begin
  {navigate to Gecko Browser Home}
  mzGecko.Navigate(WideString(HOME_ADDRESS));
end; {procedure TfrmMain.mHomeClick}

procedure TfrmMain.mAboutClick(Sender: TObject);
{show simple About dialog}
begin
  MessageDlg(PROGRAM_TITLE + #13 + '(c) 2003 - 2004 Conspiracy Software' + #13
    + 'A demo of embedding Gecko (Mozilla) in Delphi applications.' + #13
    + 'Written by Dave Murray <irongut@vodafone.net>.' + #13
    + PROGRAM_TITLE + ' was written using ' + MOZILLA_VERSION + '.',
    mtInformation, [mbOk], 0);
end; {procedure TfrmMain.About1Click}


{### MOZILLA CONTROL METHODS ###}


procedure TfrmMain.mzGeckoStatusTextChange(Sender: TObject; const Text: WideString);
{show status text in stsbrStatus}
begin
  stsbrStatus.Panels[1].Text := Text;
end; {procedure TfrmMain.mzGeckoStatusTextChange}

procedure TfrmMain.mzGeckoProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
{show download progress}
begin
  {new code suggested by Sterling Bates, see Bugzilla #225041}
  prgrssbrProgress.Position := Round((Progress / ProgressMax) * 100);
  prgrssbrProgress.Max := 100;
end; {procedure TfrmMain.mzGeckoProgressChange}

procedure TfrmMain.mzGeckoCommandStateChange(Sender: TObject; Command: Integer; Enable: WordBool);
{fired when user navigates, use to enable/disable navigation buttons}
const
  {from SHDocVw.pas}
  CSC_NAVIGATEFORWARD = $00000001;
  CSC_NAVIGATEBACK = $00000002;
begin
  if (Command = CSC_NAVIGATEFORWARD) then begin
    {enable / disable Forward button + menu item}
    tlbtnForward.Enabled := Enable;
    mForward.Enabled := Enable;
    end {if Command = CSC_NAVIGATEFORWARD}
  else if (Command = CSC_NAVIGATEBACK) then begin
    {enable / disabel Back button + menu item}
    tlbtnBack.Enabled := Enable;
    mBack.Enabled := Enable;
    end; {else if..}
end; {procedure TfrmMain.mzGeckoCommandStateChange}

procedure TfrmMain.mzGeckoDownloadBegin(Sender: TObject);
{begining navigation, start throbber}
begin
  nmtThrobber.Active := true;
end; {procedure TfrmMain.mzGeckoDownloadBegin}

procedure TfrmMain.mzGeckoDownloadComplete(Sender: TObject);
{ending navigation, stop throbber + ensure edtAddress shows URL}
var
  URL : string;
begin
  URL := mzGecko.LocationURL;
  if not(edtAddress.Text = URL) then edtAddress.Text := URL;
  nmtThrobber.Active := false;
  prgrssbrProgress.Position := 0;
end; {procedure TfrmMain.mzGeckoDownloadComplete}


{### MISC METHODS ###}


procedure TfrmMain.edtAddressKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
{navigate to current address}
begin
  if (Key = VK_RETURN) then mzGecko.Navigate(WideString(edtAddress.Text));
end; {procedure TfrmMain.edtAddressKeyDown}


{### PRIVATE METHODS ###}


function TfrmMain.CharReplace(var S: AnsiString; const Search, Replace: AnsiChar): Integer;
{Reproduced from JEDI Code Library JclStrings.pas for demonstration purposes.}
{http://www.delphi-jedi.org/}
var
  P: PAnsiChar;
begin
  Result := 0;
  if Search <> Replace then begin
    UniqueString(S);
    P := PAnsiChar(S);
    while P^ <> #0 do begin
      if P^ = Search then begin
        P^ := Replace;
        Inc(Result);
        end; {if P^ = ..}
      Inc(P);
      end; {while..}
    end; {if Search <> Replace..}
end; {function TfrmMain.CharReplace}




initialization
OleInitialize(nil);

finalization
OleUninitialize;

end.

 Conclusion

Pages web utiles :

http://www.iol.ie/%7Elocka/mozilla/mozilla.htm
h ttp://www.paranoia.clara.net/articles/taming_the_l izard_with_delphi.html
http://www.paranoia.clara.n et/articles/delphi4_lizard_taming.html

Le composant TMozillaControl, linké sur le premier lien

ps : pour les personnes en xp sp2, ils se peut qu'il y ai des problemes ... :
http://blogs.borland.com/abauer/archive/2004/10/ 29/1698.aspx
...mais résolus :
http://blogs.borland.com/abauer/archive/2004/11/ 04.aspx

Merci a David Murray, son lien (il m'a demanadé de l'ajouter ici) :
>>>> http://delphi.mozdev.org/

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

08 janvier 2005 12:00:56 :
08 janvier 2005 12:58:23 :
niveau Initié
09 janvier 2005 19:41:25 :
Ajout du lien http://delphi.mozdev.org/ Lien demandé par l'auteur. Il a dit "Thanks for letting me know. Please include a link to the Mozilla-Delphi Project, where the latest source code and article can be found: http://delphi.mozdev.org/ The code is actually for using the Mozilla ActiveX Control which has the same engine as Firefox. Thanks, Dave." :)

 Sources du même auteur

Source avec Zip Source avec une capture SCREENCAMTURE 0.2
Source avec Zip Source avec une capture JOUEZ : LIGHTS 1.4
Source avec Zip Source avec une capture FICLOCK : LOCKEZ LES FICHIERS
Source avec Zip Source avec une capture COMPOSANT TDBPTRACKBARVOLUME - JOUEZ AVEC LE SON !
Source avec Zip Source avec une capture COMPOSANT : TDBPLINKMAKER CREEZ DES .LNK

 Sources de la même categorie

Source avec Zip BASE64/BASE64URL ENCODE/DECODE par f0xi
Source avec Zip AFFICHAGE DES INFODFS par fbalien
Source avec Zip Source avec une capture INTRA MESSENGER - DELPHI par keket
Source avec Zip CODAGE DÉCODAGE PDU 7BITS par AccessToYou
Source avec Zip Source avec une capture SIMPLEWEBBROWSER par cantador

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture LOGICIEL INTERRUPTEUR MONDIAL USB par ced55957
Source avec Zip Source avec une capture SIMPLEWEBBROWSER par cantador
Source avec Zip WEB-BUILDER par numeror86
Source avec Zip Source avec une capture COMPOS TCYCOMPONENTS V2.6 par MAURICIO
Source avec Zip NAVIGTEUR WEB par PastisD1

Commentaires et avis

Commentaire de grandvizir le 08/01/2005 12:43:42

Soyons directs pour ceux qui n'ont pas, ou qui n'ont plus le dinosaure:
http://ftp.eu.mozilla.org/pub/mozilla.org/firefox/releases/1.0/win32/fr-FR/Firefox%20Setup%201.0.exe

C'est uniquement pour télécharger le navigateur. Mais pour les questions de JavaScript, autant prendre Mozilla tout court (c'est la même allure que dans Netscape Navigator et pour cause).

C'est moyen du niveau Expert, mais je suis sûr que tu aurais été capable de faire ton propre code... :)

Bien que je ne puisse pas tester, ta capture a belle allure...

Commentaire de JulioDelphi le 08/01/2005 12:47:34 administrateur CS

Oui j'en suis capable mais la je dirais c "l'officielle !!" :D
je baisse le level :)
Bonne idée de donner le lien

disons que en se basant sur cette source, on peut se faire son propre firefox (en respectant la license) en ajoutant/modifiant des options.

Commentaire de grandvizir le 08/01/2005 12:57:00

Pour le vrai Mozilla, il faut prendre:
http://ftp.eu.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7.5/mozilla-win32-1.7.5-installer.exe

Pour le code source:
http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.7.3/src/mozilla-source-1.7.3.tar.bz2

Il faut d'abord décompresser le BZip qui crée un TAR de 239Mo sur le disque dûr, pour ensuite décompresser le TAR qui copiera près de 65Mo. Pourquoi toutes ces blagues: en comprimant le TAR (même s'il est bien plus gros) on gagne 50% de compression par rapport à un Zip ou un Rar.

Pour d'autres download, voir:
http://www.mozilla.org/download-mozilla.html

Commentaire de JulioDelphi le 08/01/2005 13:04:28 administrateur CS

la source citée ci-dessus n'est pas du delphi précisons le ;)

Commentaire de grandvizir le 08/01/2005 13:21:03

Pour ceux que ça intrigue, c'est du Visual C++. Mais au final, tu ne fais qu'exploiter un code compilé en binaire référencé dans la base de registre.

JD> Tu peux m'indiquer comment tu dézippes toi ces bidules. En ce qui me concerne, je passe toujours par une librairie BZip intégrée à l'un de mes prog, et je déTar avec WinRar. Peut-être as-tu une autre solution gratuite (de préférence dans ce monde qui est le notre) ?

Restant dans les liens, les contrôles ActiveX sont:
1.7.1: http://www.iol.ie/%7Elocka/mozilla/MozillaControl171.exe
1.6: http://www.iol.ie/%7Elocka/mozilla/MozillaControl16.exe
1.5: http://www.iol.ie/%7Elocka/mozilla/MozillaControl15.exe

Commentaire de grandvizir le 08/01/2005 20:04:02

Pour installer le navigateur, il faut télécharger la version 1.7.3 donnée ci-dessus. Ensuite, en suivant l'installation des paquets avec le tuto 86, il faut ajouter un ActiveX et sélectionner l'item MozillaControl 1.0 Type Library (Version 1.0)

J'ai donc tout installé et hop ça marche, mais... Problèmes:
1) La ToolBar avec les boutons: Align:=alLeft, please !
2) Manque un fichier AVI: t'en es-tu vraiment aperçu ?
3) frmMain.Position:=poScreenCenter;
4) FireFox n'aime pas les frames
5) Merci de traduire en français: on n'est pas sur un DelphiWorld.co.uk (ça existe ??)
6) Simule nous donc une GoogleBar: on tape un texte et active une adresse du type http://www.google.fr/search.pl?keyword=LeTexte?nb=10?... (si tu vois ce que je veux dire) Ca peut aussi se décliner avec Yahoo!.
7) J'ai sorti mon 24746...

Je n'avais pas vu que tu avais changé le niveau de la source sans aucune mise à jour. Je sens qu'il va falloir que tu m'expliques un truc en MVP (lol ;) et que surtout, si tu pouvais me faire télécharger des screens de ton mode admin ça serait vraiment cool...

Commentaire de fg85 le 09/01/2005 08:15:01

Très bonne source !!!!
10/10
--------------------------
http://fg.logiciel.free.fr

Commentaire de GAndrews le 10/01/2005 11:18:36

Cher JulioDelphi
excellente initiative, mais je ne n'arrive pas à ouvrir
le ZIP.
Je ne sais pas si ca vient de mon Winzip ou de ton
fichier .
Peux tu regarder si ton fichierZip est bon ?
Merci d'avance


Commentaire de JulioDelphi le 10/01/2005 14:17:50 administrateur CS

je viens a l'instant de prendre ce zip, et je n'ai pas de probleme à l'ouverture, si tu n'arrive pas a prendre la source d'ici, suis les liens donnés, tu la trouveras.

Commentaire de grandvizir le 02/02/2005 15:58:03

Il aurait aussi été bien de gérer un évènement avec ParamStr(1). Si tu "ouvres avec" un fichier depuis l'explorateur de Windows via MozillaOCX, il faudrait que cela s'affiche directement dans la démo.

C'est juste un détail qui peut-être pratique.

Commentaire de JulioDelphi le 02/02/2005 17:22:27 administrateur CS

mail l'auteur =)
moi j'ai "posé" la source ici, j'ai rien retouché !
je suis en cemoment sur un ptit navigateur sympa, qui va gérer IE/FFox, onglets, et ce paramstr(1) =)
++

Commentaire de MasterHack le 15/08/2005 17:31:08

tres bien la sources , merci :)

Commentaire de chikenator le 26/10/2005 12:56:33

c'est la 1ere fois que j'utilise delphi et j'arrive pas a faire marcher cette source... quelqu'un peut il m'éclairer? merci

Commentaire de romit le 31/10/2005 16:29:23

Impossible de le mettre sur un autre ordinateur (Erreur de classes d'exception)

Commentaire de Filipe35 le 25/11/2005 21:00:25

Peux t'on remplir un formulaire (surtout le champs file)

??

Commentaire de Marluc le 24/08/2006 17:38:09

Une question idiote peut être ... pourquoi ne pas utiliser simplement le navigateur Firefox qui est très bien fait !
;-)

Commentaire de JulioDelphi le 24/08/2006 19:56:18 administrateur CS

C'est pas un débat pour savoir ce qu'il faut utiliser ou pas. ici avec un code source, tu as la possibilité d'ajouter modifier un navigateur. meme si tu ne l'utilise pas en navigateur par defaut, ça peut etre sympa d avoir touché à une source.
regarde le fond et non la forme =)

Commentaire de Filipe35 le 24/08/2006 20:07:32

pour te donner une idée des possibilités:
- Faire un logiciel qui t'aide à remplir des formulaires (exemple référencement d'un site)
- Un bot de navigation
- Un récupérateur des liens d'une page
- etc...

Les possiblités sont nombreuses et simpe à mettre en place en intégrant un navigateur dans son prog

++

Filipe

Commentaire de JulioDelphi le 24/08/2006 20:16:14 administrateur CS

exactement, ce que les autres navigateurs ne font pas, toi tu peux l'ajouter en faisant le tien dans ton coin =)
merci de cette intervention filipe

Commentaire de poulinr le 19/09/2006 05:11:09

Le hic avec ce LIZARD une fois compilé est qu'il faut installer un activex sur la machine pour pouvoir s'en servir. Autrement c'est très bien (mais quand même, cette idée d'activex viens un peu détruire le plaisir qu'on aurait à distribuer une application basé sur ce code.)  

Commentaire de abeking_mail le 20/01/2010 13:03:13

La démo compilée avec la dernière version de l'activex supporte-t-elle le javascript?
en fait, je veux afficher une application web utilisant JQuery à l'intérieur de mon application, sauf que TWebBrowser ne supporte pas cette librairie (du moins pas les sliders et co: messages d'erreurs à ne plus en finir: chaîne identificateur non reconnu)

Merci de votre aide
Excellente source

Commentaire de abeking_mail le 20/01/2010 13:04:20

Pourriez-vous svp poster le compilée (exe)?
si ce n'est pas possible, mon mail est : michel.ndjamina@gmail.com
Je vous en serais très reconnaissant.

Cordialement,
M

Commentaire de JulioDelphi le 20/01/2010 14:29:38 administrateur CS

Cette source de 2005 est obsolète, l'activeX est trop ancien et des failles existent certainement dedans.
Je laisse cette source mais lui donne le statut dangeureux.
Et désolé, nous ne fournissons pas d'exe et le fait de mettre votre email en clair vous expose aux spams et harcèlements car sera répertoriée dans google très bientôt.
Bonne journée

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Webbrowser: touche entré [ par AntoineDEL ] Hella, je vien de finir mon navigateur internet, et lors des béta test je vien de m'appercevoir que l'utilisation de la touche entré est imposible, qu problème de texte avec webbrowser [ par Also know as ] Bonjour,Je fais mes premiers pas sous delphi et je suis en train de travailler sous un Navigateur internet.Voiçi mon problème, assez spécial :Quand je Correspondance selection dans un WebBrowser et source HTML [ par arogues ] Bonjour,Je cherche à faire un peu comme dans un éditeur de code type FrontPage ou Dreamweaver : lorsque je selctionne du texte (dans le webbrowser), o viariable avec internet [ par zibong ] J'aimerai Allé chercher la valeur d'une variable sur un autre PC via internet!Est ce que vous pouriez me donné des lien de source ou m'expliquéj'ai de Lien internet [ par Dezouille ] Bonjour a tous les developpeurs,voila ma question.Je voudrais creer une petite applicationqui me permetrais d'afficher des page internet dans un webbr Webbrowser Accessibilité [ par Encore1ben ] Bonsoir à tous... Je reviens vers vous, car comme d'habitude, vous assurez toujours avec mes questions tordues ! :) Alors voilà, je développe actuel Ports Internet [ par Bacterius ] Bonjour,Est-ce que quelqu'un sait quels sont les ports que l'on doit utiliser pour les composants TCP dans le but d'une application client/serveur?J'a webBrowser-javascript [ par nosimbio ] Bonjour,Je ne sais pas comment passer une valeur de variable javascript dans une variable delphi.J'ai un twebbrowser contenant une page internet (en l un code source de gestion du persinnel [ par sma1007 ] salut ,tout le mondej'est besoin d'un code source de gestion du personnel ou gestion de congé avec Delphi impossible de définir correctement la partie à scanner avec DelphiTwain [ par ALSC ] Bonjour,J'utilise DelphiTwain avec Delphi 7.Mon problème est le suivant :Je n'arrive pas à définir la partie à scanner avec précision en utilisant la


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales