Avatar billede refpsych Nybegynder
05. august 2002 - 21:49 Der er 5 kommentarer

Event i Dll

Hej!

Hvordan kan jeg fange et event i en dll?
Fx:
library Project2;

uses
  SysUtils,
  Classes,
  ShDocVw;

{$R *.res}

var
webBrowser : TWebBrowser;

procedure proc1;
begin
webBrowser := TWebBrowser.Create(nil);
webBrowser.Navigate('www.google.com');
...
webBrowser.Free;
end;


begin
end.

og så fange eventet OnNavigateComplete2?
Avatar billede hermandsen Juniormester
06. august 2002 - 09:05 #1
Kan du ikke bare lave en callback-procedure?

type TWebBrowserNavigateComplete2 = procedure(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant) of object;

Så laver du en procedure af samme type og så sætte OnNavigateComplete2 lig den?

procedure NuErDetSlut(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);

OnNavigateComplete2 := NuErDetSlut;

Borrisholt har også skrevet en god artikel om Callback procedurer...
http://www.pythia.dk/artikler/vis_artikel.php?id=22
Avatar billede refpsych Nybegynder
07. august 2002 - 15:03 #2
Øh, det ved jeg ik helt...

Jeg vil bare fange et event der allerede existere fx timer1.onTimer...Det kan jeg ikke rigtig se hvordan jeg gør ud fra det eksempel du har lavet....
Avatar billede hermandsen Juniormester
07. august 2002 - 16:32 #3
procedure MinOnTimerEvent(Sender: TObject);
begin
  {Først skal vi lave en procedure som Timer'en kan bruge.}
  {Den skal være defineret som "procedure (Sender: TObject)"}

  //Her kommer koden der udføres
  ShowMessage('Davs, nu er din timer færdig!');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  {Før ovenstående procedure kan bruges af timer'en skal Timer'ens OnTimer-event sættes til den}
  {Det ligesom når du tildeler en variabel en værdi, altså med ":="}

  Timer1.OnTimer := MinOnTimerEvent;
end;

Hjalp det lidt?
Avatar billede refpsych Nybegynder
07. august 2002 - 18:08 #4
Nej, desværre :)
Det jeg har brug for at finde ud af er hvordan man laver et event i en dll hvor man ikke har en form at "binde" det til...
Avatar billede hermandsen Juniormester
07. august 2002 - 18:27 #5
Hmmm... Kan du ikke eventuelt sende projektet til mig... Jeg har aldrig rigtig leget med dll'er, så selve opbygningen af dll'er er lidt problemet... Tror dog godt jeg kan løse dit problem (med forbehold)! ;)

hermandsen@softhome.net
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