Avatar billede fastpoint Nybegynder
10. juni 2001 - 20:07 Der er 6 kommentarer og
1 løsning

nico22 ?

der var den....
en knap i html har en value eller navn...når man klikker på mobil i delphi skal den finde knappen i html koden og klikke på den.

hvis jeg skriver adressen http://www.mobil.dk og den så bliver ændret så vil siden ikke blive fundet, men hvis jeg bruger den samme knap (med samme value) så vil den altid finde siden:=)

Meget smart.

Hvordan gør jeg det?
Jeg opretter lige et andet spørgsmål så du kan får dine point.
Avatar billede nico26 Nybegynder
10. juni 2001 - 20:31 #1
i dit oprindelige spørgsmål - http://www.eksperten.dk/spm/74682 - fandt vi nogle textfelter og en combobox. På samme måde måde kan du finde en knap, eller en hvilken som helst anden type html-objekt. Det første man skal gøre er at få en såkaldt collection med alle de elementer af den ønskede type, hvorefter man kan identificere det ønskede objekt med et ID eller navn. Når man så har fundet knappen, mener jeg at den har en click procedure man kan kalde.

Jeg er bare ikke helt med på hvad html-knappen skal. Skal browseren navigere til mobil.dk når man trykker på den?
Avatar billede fastpoint Nybegynder
10. juni 2001 - 20:37 #2
ja... når man klikker i delphi på knappen mobil så skal delphi i webbrowser1 finde knappen med value eller name mobil og klikke på den.
Avatar billede nico26 Nybegynder
10. juni 2001 - 20:39 #3
okay - jeg kigger på det og vender tilbage i morgen.
Avatar billede fastpoint Nybegynder
10. juni 2001 - 20:46 #4
okay:)
Avatar billede nico26 Nybegynder
11. juni 2001 - 11:07 #5
det var jo slet ikke så svært

<html>
<head>
  <title>Html i Delphi</title>
  <script language=\"JavaScript\">

    function mobilClick() {
      alert(\"Du klikkede på mobilknappen\");
    }

  </script>
<head>
<body>
  <h1>Html i Delphi</h1>
  <input type=\"button\" id=\"mobil\" value=\"Mobil\" onClick=\"mobilClick()\"/>
</body>
</html>



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, SHDocVw_TLB, MSHTML_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    btnMobil: TButton;
    btnNavigate: TButton;
    procedure btnMobilClick(Sender: TObject);
    procedure btnNavigateClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  ComObj;

{$R *.DFM}

procedure TForm1.btnMobilClick(Sender: TObject);
var
  Doc: IHTMLDocument2;
  AllElts: IHTMLElementCollection;
  Elt: IDispatch;
  Mobil: IHTMLInputButtonElement;
begin
  Doc := WebBrowser1.Document as IHTMLDocument2;

  if Assigned(Doc) then
  begin
    AllElts := Doc.all;
    Elt := AllElts.item(\'mobil\', EmptyParam);

    if Assigned(Elt) then
    begin
      OleCheck(Elt.QueryInterface(IHTMLInputButtonElement, Mobil));
      (Mobil as IHTMLElement).click;
    end;
  end;
end;

procedure TForm1.btnNavigateClick(Sender: TObject);
begin
  WebBrowser1.Navigate(\'sidens navn\', EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

end.
Avatar billede nico26 Nybegynder
11. juni 2001 - 11:08 #6
det var jo slet ikke så svært

<html>
<head>
  <title>Html i Delphi</title>
  <script language=\"JavaScript\">

    function mobilClick() {
      alert(\"Du klikkede på mobilknappen\");
    }

  </script>
<head>
<body>
  <h1>Html i Delphi</h1>
  <input type=\"button\" id=\"mobil\" value=\"Mobil\" onClick=\"mobilClick()\"/>
</body>
</html>



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  OleCtrls, SHDocVw_TLB, MSHTML_TLB, StdCtrls;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    btnMobil: TButton;
    btnNavigate: TButton;
    procedure btnMobilClick(Sender: TObject);
    procedure btnNavigateClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses
  ComObj;

{$R *.DFM}

procedure TForm1.btnMobilClick(Sender: TObject);
var
  Doc: IHTMLDocument2;
  AllElts: IHTMLElementCollection;
  Elt: IDispatch;
  Mobil: IHTMLInputButtonElement;
begin
  Doc := WebBrowser1.Document as IHTMLDocument2;

  if Assigned(Doc) then
  begin
    AllElts := Doc.all;
    Elt := AllElts.item(\'mobil\', EmptyParam);

    if Assigned(Elt) then
    begin
      OleCheck(Elt.QueryInterface(IHTMLInputButtonElement, Mobil));
      (Mobil as IHTMLElement).click;
    end;
  end;
end;

procedure TForm1.btnNavigateClick(Sender: TObject);
begin
  WebBrowser1.Navigate(\'sidens navn\', EmptyParam, EmptyParam, EmptyParam, EmptyParam);
end;

end.
Avatar billede fastpoint Nybegynder
11. juni 2001 - 12:11 #7
Ja...letterer kunne det jo ikke have været:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester