06. december 2001 - 22:55Der er
32 kommentarer og 1 løsning
Deling af IDsipatch mellem programmer
Hejsa! Jeg er ved at lave en lile browser med TWebBrowser komponenten. Ved onNewWindow2 eventel skal jeg starte en ny kopi af browseren... Det er jo let nok men jeg skal også have så linken der er klikket på åbnes i det nye vindue. Derfor skal jeg i programmet bruge en IDispatch på browseren i den nye instance af programmet.... HVORDAN?
oki doki.... men det er når en link skal åbnes i et nyt vindue... så er det jo URL\'en af den link man klikker på og ikke den side man allerede er på...
I WebBrowser1NewWindow2 proceduren skal jeg stikke den en DefaultDispatch som er den IDispatch som den nye Browser har... Så virker det, men hvordan ved jeg hvad den er?
du kan gører det liddt sådan her, men her er det ikke et nyt program som åbner, men bare en ny form, tænker stadig lige over den med program. men du kan selvfølgelig gører det på en let måde, men lidt fake...
procedure TForm1.WebBrowser1NewWindow2(Sender: TObject; var ppDisp: IDispatch; var Cancel: WordBool); var dinnyeform : TForm1; begin dinnyeform := TForm1.Create(Self); dinnyeform.Visible := true; ppdisp := dinnyeform.WebBrowser1.Application; end;
procedure TForm1.Navigate; begin if (not DirectoryExists(Edit1.Text)) and (pos(\'ftp://\', LowerCase(Edit1.Text)) <> 1) and (pos(\'mailto:\', LowerCase(Edit1.Text)) <> 1) and (pos(\'file://\', LowerCase(Edit1.Text)) <> 1) then WebBrowser1.Navigate(Edit1.Text);
if (pos(\'mailto:\', LowerCase(Edit1.Text)) = 1) then SpeedButton7Click(Self); end;
ja det er ikke shellexecte som er et problem det er det med at få url\'en som man skal ind på (altså på den nye side) med sig, for den url kommer først frem, hmmm man kunne jo lave en sleep prøver lige :)
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.