Forum Delphi.cz

Delphi => Obecné => Téma založeno: ble 03-07-2012, 01:13:20

Název: twebbrowser
Přispěvatel: ble 03-07-2012, 01:13:20
Nazdarek...

(Delphi 2005)
Pouzivam twebbrowser ke zobrazovani html dokumentu, s tim problem nemam.  Problem mam vsak s kontextovym menu a klavesovymi zkratkami, kterymi twebbrowser disponuje. Jednoduse receno - potrebuji, aby slo mysi oznacit treba kus textu zobrazeneho html dokumentu a potom mit moznost tento oznaceny text zkopirovat (Ctrl+C nebo popupmenu - kopirovat). Nic jineho.

Omezeni kontextovych menu a klavesovych zkratek, vcetne zamezeni prechodu na jiny dokument kliknutim na link, mam poreseno takto:
Kód: Delphi [Vybrat]
  1. procedure TfrmXYZ.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean);
  2. begin
  3.   if (Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONDBLCLK) or
  4.      (Msg.Message = WM_LBUTTONUP) or (Msg.Message = WM_LBUTTONDBLCLK) or
  5.      (GetKeyState(VK_CONTROL) < 0) and (Msg.Message = WM_KEYDOWN) and (Msg.wParam <> -1)
  6.   then begin
  7.     if IsChild(webA.Handle, Msg.hwnd) then Handled := True;
  8.   end;
  9. end;
  10.  
Takze tim je zajisteno, ze mohu zobrazeny html dokument pouze prohlizet. Poradte, prosim, jak dosahnout toho, abych mohl oznacit text a nasledne zkopirovat. Diky ...
Název: Re:twebbrowser
Přispěvatel: < z > 03-07-2012, 07:27:53
proc vlastne pouzivas tenhle kod a zahazujes zpravy, ktery jsou potreba? :D

pridej uniutu "ActiveX" a tento kod

Kód: Delphi [Vybrat]
  1. initialization
  2.   OleInitialize(nil);
  3. finalization
  4.   OleUninitialize;

ten svuj kod si pro jistotu okomentuj a uprav,
na zakaz prechodu na jinou stranku tam mas OnBeforeNavigate
Název: Re:twebbrowser
Přispěvatel: ble 03-07-2012, 10:34:34
Diky za tip

Na OnBeforeNavigate2 jsem zapomnel. Jiz jsem to napravil  :)

ActiveX - jsem z toho tak trochu jelen. Do uses jsem pridal ActiveX, to je asi ok. Kam ale dat ty 4 radky, ktere jsi uvedl ?? A jak pak s tim pracovat ?? V tomhle jsem 100% neznalek...

Diky

Název: Re:twebbrowser
Přispěvatel: < z > 03-07-2012, 11:07:45
ty 4 radky pridej pred "end.", co je uplne na konci unit-u  ;)
Název: Re:twebbrowser
Přispěvatel: Stanislav Hruška 03-07-2012, 11:18:18
a k tomu si naštuduj čo initialization a finalization vlastne znamenajú. Nech vieš čo robíš.
Název: Re:twebbrowser
Přispěvatel: ble 03-07-2012, 11:41:10
diky

/hruska/
jj, initialization a finalization som si už naštudoval, mal som to urobiť skôr. neskoro, ale predsa  :)

/<z>/
toz jsem to umistil, jak jsi rek a jak jsem to i nyni nastudoval :) . app jde prelozit bez chyb.
stejne vsak nevim jak to vyuzit pro reseni meho problemu = zamezit standardni kontextove menu twebbrowseru a nejruznejsi klavesove zkratky. chci jen ponechat moznost oznacit text a zkopirovat oznaceny text.
mas-li se mnou jeste trpelivost, zkus mi poradit. diky  :)
Název: Re:twebbrowser
Přispěvatel: < z > 03-07-2012, 14:04:42
aha, ty vubec nechces to puvodni menu,
protze u vybraneho textu se ukazuje to na kopirovani ...

no na zruseni menu je tu toto
http://www.swissdelphicenter.ch/torry/showcode.php?id=571

zkus mrknout na tento clanek o EmbedWB (lepsi nahrada za twebbrowser)
http://mzemaitis.wordpress.com/2008/04/24/how-to-show-your-own-custum-popup-in-twebbrowser-component/
a mas tam i na vyber, jaky menu chces ;)
Název: Re:twebbrowser
Přispěvatel: ble 03-07-2012, 20:33:10
/<z>/
Diiiky.
EmbedWB je vyborna vec. Uz mi vse funguje jak ma  :)