Avatar billede armena Nybegynder
21. oktober 2002 - 13:46 Der er 19 kommentarer og
1 løsning

et par spørgsmåls

Hej jeg har et par spørgsmåls.

#1. hvordan gøre jeg sådan at Edit1.text er det webbrowser1 er inde i... altså hvis webbrowser1 er inde på http://www.macrotech.dk/forside.php så står der det i edit1.text

#2. Hvordan gøre jeg sådan at Progress1 viser hvor lang tid det tager og komme ind på en side, ligesom i IE, eller andre browser..(den der blå en der)

#3. hvordan gøre jeg sådan at statusbar viser infoen om hvad min webbrowser 1 laver..fx. : hvis jeg går ind på www.macrotech.dk så skriver den : "www.macrotech.dk fundet" eller noget i den stil

Håber i kan hjælpe(hvis i kan så skriv #1,2 eller 3 og så svaret)
Avatar billede diz Nybegynder
21. oktober 2002 - 14:30 #1
#1 : I eventen for webbrower1 som hedder NavigateComplete skriver du bare

begin
  edit1.text := webbrowser1.locationURL;
end;
Avatar billede fracklen Nybegynder
21. oktober 2002 - 15:19 #2
#2 TWebBrowser har en event der hedder OnProgressChange

ved ik om en Gauge vil være bedre...?

procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
  ProgressMax: Integer);
begin
Progressbar1.Max:=ProgressMax;
ProgressBar1.Step:=1;
Progressbar1.Position:=Progress;

end;

/Fracklen
Avatar billede fracklen Nybegynder
21. oktober 2002 - 15:23 #3
#3 Det kommer nok til at ligne IE ret meget, men TWebBrowser har oxo en event der hedder OnStatusTextChange

procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
  const Text: WideString);
begin
StatusBar1.SimplePanel:=True;
StatusBar1.SimpleText:=Text;
end;
Avatar billede armena Nybegynder
21. oktober 2002 - 22:33 #4
fracklen> i #2. hvis man skal lave med Gauge skal man bare skrive det samme bare erstatte Progressbar1 til Gauge1 ??
Avatar billede armena Nybegynder
22. oktober 2002 - 10:19 #5
Fracklen> hvordan gøre man det med progress bare med Gauge??

Diz>> det med edit.text... <-- det virker ik.. og jeg har sat den i OnNavigatecomplete
Avatar billede diz Nybegynder
22. oktober 2002 - 11:53 #6
du skal jo huske at du skal være på en side før den skriver noget...hvordan fortæller du hvilken side du skal vise? Sætter du den i form create eller hva? Hvis din ide er ikke kun at vise hvilken side du er inde på, men også kunne skrive hvilken side du er inde på skal du også have følgende :

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
  begin
    webbrowser1.Navigate(edit1.Text);
  end;
end;
Avatar billede diz Nybegynder
22. oktober 2002 - 11:57 #7
alt i alt med hva mig og fracklen har vist, skulle din kode ligne følgende :

unit uWebbrowser;

interface

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

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Edit1: TEdit;
    ProgressBar1: TProgressBar;
    StatusBar1: TStatusBar;
    procedure FormCreate(Sender: TObject);
    procedure WebBrowser1NavigateComplete2(Sender: TObject;
      const pDisp: IDispatch; var URL: OleVariant);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure WebBrowser1ProgressChange(Sender: TObject; Progress,
      ProgressMax: Integer);
    procedure WebBrowser1StatusTextChange(Sender: TObject;
      const Text: WideString);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  webbrowser1.Navigate('about:Blank');
end;

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
begin
  edit1.Text := webbrowser1.LocationURL;
end;

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
  begin
    webbrowser1.Navigate(edit1.Text);
  end;
end;


procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
  ProgressMax: Integer);
begin
  progressbar1.Max := progressmax;
  progressbar1.Step := 1;
  progressbar1.Position := progress;
end;

procedure TForm1.WebBrowser1StatusTextChange(Sender: TObject;
  const Text: WideString);
begin
  statusbar1.SimplePanel := true;
  statusbar1.SimpleText := text;
end;

end.


Håber du kan bruge det :)
Avatar billede diz Nybegynder
22. oktober 2002 - 11:58 #8
ok det virker!
Avatar billede diz Nybegynder
22. oktober 2002 - 12:06 #9
Hvis du vil bruge en Gauge istedet så skriv følgende i webbrowsers OnProgressChange:

procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress,
  ProgressMax: Integer);
begin
  gauge1.MaxValue := progressmax;
  gauge1.MinValue := 0;
  gauge1.Progress := progress;
end;
Avatar billede armena Nybegynder
22. oktober 2002 - 13:35 #10
takker.. :D Diz du får extra point hvis du kan svare på min 2 andre spørgsmål: #1: Hvordan gør jeg sådan at når man klikker på et link der åbner et nyt vindue så åbner den i mit program, fordi at når jeg trykker på et link der åbner et nyt vindue så åbner den IE vindue..                #2. Hvordan gør jeg sådan at når man har besøgt en side før så gemmer den siden i en combobox.. sådan at når næste gang man vil ind trykker man bare på pilen ude i siden og klikker på linket??
Avatar billede diz Nybegynder
22. oktober 2002 - 16:37 #11
for at gemme hvor du har været skal du have følgende i din kode:

procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var
  i : Integer;
  exist : Boolean;
begin
    combobox1.Text := webbrowser1.LocationURL;
    for i := 0 to combobox1.Items.Count-1 do
    begin
      if webbrowser1.LocationURL = combobox1.Items.Strings[i] then
      begin
        exist := true;
        break;
      end;
    end;
    if not exist then combobox1.Items.Add(combobox1.Text);
end;

procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
  begin
    webbrowser1.Navigate(combobox1.Text);
  end;
end;


procedure TForm1.ComboBox1Select(Sender: TObject);
begin
  webbrowser1.Navigate(combobox1.Text);
end;

Og du skal huske at skifte din edit1 ud med en combobox1.
Læg dog mærke til at den ikke gemmer det i en fil eller lign. DVS næste gang du starter programmet, så er stederne væk.
Avatar billede armena Nybegynder
22. oktober 2002 - 18:34 #12
jamen hvordan gøre jeg så sådan at den gemmer også til næste gang.. (med ini filer)
Avatar billede armena Nybegynder
22. oktober 2002 - 18:36 #13
diz ved du hvordan man laver #2. ?
Avatar billede diz Nybegynder
22. oktober 2002 - 21:36 #14
ja, en måde ville være at skrive det til en tekstfil. Men hvis du ikke vil have listen til at være altfor lang, så skal man nok sætte noget begrænsning af en eller anden art.

Det andet spørgsmål et jeg ikke helt klar over hvordan man kan løse, men kigger lige lidt på det i aften/ imorgen.
Avatar billede armena Nybegynder
22. oktober 2002 - 21:45 #15
ok :D
Avatar billede diz Nybegynder
22. oktober 2002 - 23:54 #16
her er lidt som åbner popup i din egen browser:

procedure TForm1.WebBrowser1NewWindow2(Sender: TObject;
var ppDisp: IDispatch; var Cancel: WordBool);
var
  NewWindow: TForm1;
begin
  NewWindow := TForm1.Create(self);
  NewWindow.Show;
  ppDisp := NewWindow.Webbrowser1.DefaultDispatch;
end;

Det er taget fra nedenstående spørgsmål, som du måske også kan læse

http://www.eksperten.dk/spm/192981
Avatar billede armena Nybegynder
23. oktober 2002 - 11:37 #17
skal TForm1 være den mdi child hvor webbrowser er? hvis ja så er det TForm2 ik ? fordi at min for med webbrowseren er Form2
Avatar billede diz Nybegynder
23. oktober 2002 - 13:07 #18
lige præcis....

Har selv lige prøvet det og det skulle virke.
Avatar billede armena Nybegynder
23. oktober 2002 - 14:33 #19
diz jeg har ikke afprøvet det med at gemme i en combobox og den med popup i min egen browser, men det gør jeg snart :D.. Jeg har bare travlt med en stil. :(
Avatar billede diz Nybegynder
28. oktober 2002 - 08:07 #20
luk
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