Avatar billede gamer61 Nybegynder
15. februar 2003 - 13:29 Der er 45 kommentarer og
1 løsning

Hjælp til browser.

Jeg fandt en guide til hvordna man kan lave sin egen browser. Der er bare et problem. JEg har fuldt alle de nederstående trin men min compiler siger der er noget galt.

1. Start with a new application. Change the form\'s Name property to WebMain and the Caption property to EZ Web Browser.

2. Place a Panel component on the form and change its Align property to alTop and its Height property to 60. Clear the Caption property.

3. Place a ComboBox component on the panel. Move it near the top of the panel and make it as wide as the panel itself. Change the Name property to URLComboBox. Change the Text property to an URL of your choice (try http://www.turbopower.com). Double-click the Constraints property and change the AnchorHorz constraint to akStretch.

4. Place a StatusBar component on the form. It will automatically position itself at the bottom of the form. Change its Name property to StatusBar and its SimplePanel property to True.

5. Place an HTML control in the middle of the form. Change its Align property to alClient. The HTML control fills the screen. Change the Name property to HTML.

Now your form should look similar to the one shown in Figure BD.1. If your application doesn\'t look exactly like Figure BD.1, adjust as necessary or just leave it. (A little individuality isn\'t a bad thing, after all.)
At this point, you should save the project. Save the form as WebBrwsU.pas and the project as WebBrows.dpr. Now you\'ll add just enough functionality to make the browser do something useful.
FIGURE BD.1. Your new Web browser after the first steps.


6. Click on the URL combo box. Generate an event handler for the OnClick event. Type the following code in the event handler:

if URLComboBox.Text <> `\' then
  HTML.RequestDoc(URLComboBox.Text);

The RequestDoc method loads the requested document after first checking that the combo box contains text.

7. Now generate an event handler for the OnKeyPress event. Type the following code in the event handler:

if Key = Char(VK_RETURN) then begin
  Key := #0;
  if URLComboBox.Text = `\' then
    Exit;
  URLComboBoxClick(Sender);
end;

This code first checks the Key parameter to see whether the Enter key was pressed. If so, it sets Key to 0 and calls the URLComboBoxTest method (created in step 6). Setting Key to 0 prevents the speaker from beeping when the Enter key is pressed. The call to the URLComboBoxClick method loads the URL into the Web browser.

8. Now compile and run the program. Type an URL in the combo box and press Enter. If you typed in a valid URL, the page will load in the HTML control.

Wow! A Web browser in 15 minutes! Notice that the browser acts like any other Web browser...well, sort of. You need to add a lot of functionality, but it\'s a start.

Det er det første af de to ting manden vil have man skal skrive af der er noget galt i.

Jeg får error i følgende linie:

if URLComboBox.Text = `' then

JEg er ikke sikker på det er den rigtige error message jeg her poster man det burde det være:

[Error] Unit1.pas(41): Undeclared identifier: 'Key'

Jeg håber MEGET der er nogen der kan hjælpe!

På forhånd tak!
Avatar billede stone Forsker
15. februar 2003 - 13:39 #1
Jeg vil tro fejlen ligger i et forkert tegn

if URLComboBox.Text = '' then i stedet for if URLComboBox.Text = `' then
Avatar billede gamer61 Nybegynder
15. februar 2003 - 13:49 #2
Hvis jeg skriver:

if URLComboBox.Text <> '' then

Hopper den ned og siger der er en fejl i næste linie som er:

  HTML.RequestDoc(URLComboBox.Text);

Og her er den nye error:

[Error] Unit1.pas(34): Undeclared identifier: 'RequestDoc'

JEg har gjort PRÆCIST som der står i min forrige post
Avatar billede stone Forsker
15. februar 2003 - 15:32 #3
er RequestDoc defineret?
Avatar billede stone Forsker
15. februar 2003 - 15:35 #4
har du en URL til den guide? hvor du har eksemplet fra
Avatar billede doc404 Novice
15. februar 2003 - 19:26 #5
Hvis du bruger Delphi 4 skulle det faktisk virker, men fra og med Delphi 5 hedder browser komponenten TWebBrowser.

Eksemplet du har fundet virker kun i Delphi 4, med mindre du importere de gamle internet komponenter.
Avatar billede gamer61 Nybegynder
16. februar 2003 - 13:36 #6
Her er den guide jeg bruger http://www.cesis.lv/learn/delphi/apc.htm#Heading4
MEN. Jeg ahr kun fulgt de trin jeg har postet. Resten venter jeg med til jeg funder fejlene
Avatar billede stoney Nybegynder
16. februar 2003 - 13:46 #7
glem den guide. den er outdated
drop en twebbrowser fra fanebladet internet yderst til højre + 1 edit (eller combobox) + 1 button

procedure TForm1.Button1Click(Sender: TObject);
begin
webbrowser1.Navigate(edit1.Text);
end;

Stoney
Avatar billede gamer61 Nybegynder
16. februar 2003 - 13:59 #8
Hvor skal det der text stå
Avatar billede stoney Nybegynder
16. februar 2003 - 14:00 #9
hvad mener du ?

Stoney
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:00 #10
Hvor skal det her stå

procedure TForm1.Button1Click(Sender: TObject);
begin
webbrowser1.Navigate(edit1.Text);
end;
Avatar billede stoney Nybegynder
16. februar 2003 - 14:02 #11
det er kun hvis du vil bruge en button(knap)
drop en button og dobbelklik på den og skriv
webbrowser1.Navigate(edit1.Text);


Stoney
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:03 #12
Ohhh ok. Jeg prøver
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:09 #13
Nu virker den fint med knappen men det virker ikke at trykke ENTER når man lige har skrevet adressen
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:13 #14
Hvis jeg nu smider 2 knapper mere på. Hvad skal der så stå i dem for at få dem til at virke som FREM og TILBAGE knapper?
Avatar billede stoney Nybegynder
16. februar 2003 - 14:15 #15
skriv følgende på din edit's keydown event

if key = vk_return then
webbrowser1.Navigate(edit1.Text);
// eller  button1.Click;

Stoney
Avatar billede stoney Nybegynder
16. februar 2003 - 14:18 #16
webbrowser1.GoBack;  // tilbage
webbrowser1.GoForward;  //frem

prøv at skrive webbrowser1. så popper dine muligheder op.

Det gælder de fleste componenter.

stoney
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:31 #17
Der kommer en eller anden underlig fejl når jeg trykker tilbage knappen
Avatar billede stoney Nybegynder
16. februar 2003 - 14:34 #18
Du skal selvfølgelig have besøgt en side først og så en ny side
før du kan hoppe tilbage

Stoney
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:34 #19
Kan man forresten slippe af med den der BIP lyd når man trykker ENTER efter at have skrevet en adresse i sin ComboBox1
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:39 #20
Hvordan kan man sætte en startside
Avatar billede stoney Nybegynder
16. februar 2003 - 14:43 #21
du kan sætte din combox text til din start side
og på din forms oncreate event
webbrowser1.Navigate(combobox1.Text);

men prøv dig frem, ellers lærer du ikke noget(jeg vil godt hjælpe dig, men jeg laver ikke en hel browser for dig)

vedr beep:
indsæt/tilføj følgende på din keydown event

var
  Mgs : TMsg;
begin
if Key = vk_return then
  PeekMessage(Mgs, 0, WM_CHAR, WM_CHAR, PM_REMOVE );
end;

Stoney
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:49 #22
Fedt nok. Nu virker min startside. Men den brokker sig når jeg sætter den der BIP-dræber ind i min combobox´s OnKeyDown event
Avatar billede gamer61 Nybegynder
16. februar 2003 - 14:53 #23
Nu har jeg kigget lidt rundt men jeg kan altså ikke se hvor løsningen til dette skulle ligge. Efter at have skrevet et søgeord i google.com kan man ikke få den til at søge ved at trykke enter
Avatar billede gamer61 Nybegynder
16. februar 2003 - 15:01 #24
Jeg smutter lige en 20 min tid.
Avatar billede gamer61 Nybegynder
16. februar 2003 - 15:49 #25
Nå men ved du hvordan man får ENTER til at virke på google.com og andre steder
Avatar billede gamer61 Nybegynder
17. februar 2003 - 00:21 #26
Nu har jeg brugt hele dagen på at finde ud af hvordan man får den s**** ENTER til at virke i søgemaskiner og er kommet nowere. Det samme gælder for den der DING lyd. Den vil bare ikke dø. Og nu er jeg lige blevet i rigtig godt humør forbi jeg lige har opdaget at man heller ikke kan kopiere text fra hjemmesider.

Er der ik en der kan hjælpe
Avatar billede stone Forsker
17. februar 2003 - 00:45 #27
Kopiering af aktuel hjemmeside:

function DownloadFile(const Url: string): string;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1024] of Char;
  BytesRead: dWord;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

  if Assigned(NetHandle) then
  begin
    UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

    if Assigned(UrlHandle) then
      { UrlHandle valid? Proceed with download }
    begin
      FillChar(Buffer, SizeOf(Buffer), 0);
      repeat
        Result := Result + Buffer;
        FillChar(Buffer, SizeOf(Buffer), 0);
        InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
      until BytesRead = 0;
      InternetCloseHandle(UrlHandle);
    end
    else
      { UrlHandle is not valid. Raise an exception. }
      raise Exception.CreateFmt('Cannot open URL %s', [Url]);

    InternetCloseHandle(NetHandle);
  end
  else
    { NetHandle is not valid. Raise an exception }
    raise Exception.Create('Unable to initialize Wininet');
end;

procedure TForm1.Edit1DblClick(Sender: TObject);
begin
richedit1.Lines.Text:= downloadfile(edit1.Text);

end;
Avatar billede gamer61 Nybegynder
17. februar 2003 - 00:55 #28
Skal den ikke stå i imple.....
Avatar billede gamer61 Nybegynder
17. februar 2003 - 00:59 #29
Eller hvor skal den stå
Avatar billede stone Forsker
17. februar 2003 - 01:39 #30
implementation

{$R *.DFM}
<<her>>
Avatar billede gamer61 Nybegynder
17. februar 2003 - 01:40 #31
ok tak
Avatar billede gamer61 Nybegynder
17. februar 2003 - 01:43 #32
Den kommer med denne fejl:

[Error] Unit1.pas(88): Undeclared identifier: 'HINTERNET'

I følgende linie

NetHandle: HINTERNET;
Avatar billede stone Forsker
17. februar 2003 - 01:45 #33
prøv at poste det du har stående i din USES foroven
Avatar billede gamer61 Nybegynder
17. februar 2003 - 01:46 #34
uses Winsock;
Avatar billede stone Forsker
17. februar 2003 - 01:46 #35
ellers kan jeg sende mit eksempel til dig
Avatar billede gamer61 Nybegynder
17. februar 2003 - 01:47 #36
min mail captain_denmark@hotmail.com
Avatar billede gamer61 Nybegynder
17. februar 2003 - 02:02 #37
det eneste der står i min USES er uses Winsock;
Avatar billede stone Forsker
17. februar 2003 - 02:10 #38
uses
WinInet
Avatar billede gamer61 Nybegynder
17. februar 2003 - 02:16 #39
Hvad er din mail. Så sender jeg den lige
Avatar billede stone Forsker
17. februar 2003 - 02:18 #40
steenlarsen@it.dk
Avatar billede stone Forsker
17. februar 2003 - 02:18 #41
du kan også prøve at kigge her:
http://www.swissdelphicenter.ch/en/internet.php
Avatar billede gamer61 Nybegynder
17. februar 2003 - 02:20 #42
Ok jeg kigger. Nu er den sendt
Avatar billede stone Forsker
17. februar 2003 - 02:32 #43
du skal slette:

procedure TForm1.Edit1DblClick(Sender: TObject);
begin
richedit1.Lines.Text:= downloadfile(edit1.Text);

du har ikke lavet en eventhandler

indsæt i din uses WinInet

så kører det hos mig
Avatar billede gamer61 Nybegynder
17. februar 2003 - 02:36 #44
Nu kan jeg køre den men jeg kan ikke kopiere text fra homepagene
Avatar billede stone Forsker
17. februar 2003 - 08:14 #45
kig på det eksemplet jeg har sendt til dig..prøv at lege lidt med mulighederne du kan kopier til clipboard få den til at åbne notepad og paste from clipboard.
det er faktisk let hvis man tænker sig lidt om.
Avatar billede gamer61 Nybegynder
17. februar 2003 - 10:48 #46
ok
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