[ bancika @ 11.01.2005. 23:34 ] @
Pozdrav svima.

Napravio sam u kodu neki izvestaj u HTML formatu i sad hocu da ga prikazem. Probao sam da napravim novu formu sa EmbeddedWB-om i da jednostavno navigate-ujem do napravljenog fajla. I to radi ok...samo kad se zatvori ta forma desi se nesto sto jos nisam video: glavna forma reaguje ok na pokrete misem (onMouseOver radi) ali ne mogu nigde da klikem...uopste ne registruje klikove misem ni na jednu kontrolu.
onda sam probao da sa shellexecute izvrsim html fajl i otvorim ga u IE...nece (vraca rezultat manji od 32). nece da izvrsi ni kad mu dam putanju do HTML fajla, ni kad izvrsim 'C:\Program Files...iexplore.exe "ime html fajla"' a nece ni kad dam SAMO putanju do iexplore.exe...sto bi moralo da radi..
a sa ostalim fajlovima shell execute radi OK.

Jel ima neko ideju sta da radim?
Hvala unapred,
Bane
[ Srki_82 @ 11.01.2005. 23:49 ] @
Probaj da tu drugu formu svaki put kreiras i oslobadjas. Znaci, da se ne kreira na pocetku programa kao sve ostale nego da ti kasnije pises Forma.Create(Application) i posle Forma.Free. To bi trebalo da ti resi problem sa klikanjem ako je nesto do Delphi-a... a zbog cega ShellExecute neradi nemam pojma... ja sam probao kod mene sa Delphi 7 i WinXP + SP2 i radi bez problema. Probaj sa CreateProcess funkcijom da pokrenes iexplorer.
[ bancika @ 12.01.2005. 01:19 ] @
hehehe, palo mi je i to na pamet, i sredilo je problem.
ali onda ponekad kada se unistava forma mi puknu par exceptiona u EmbeddedWB unitu i jedan u CoolTrayIcon..ludo :)
za svaki slucaj, evo koda za shell execute, mozda gresim negde:

Code:

function TMainForm.ShellOpenFile(hWnd : HWND; AFileName, AParams, ADefaultDir : string; Explore: boolean = False): integer;
var Act: PChar;
begin
  if Explore then
    Act := 'explore'
  else
    Act := 'open';
  Result := ShellExecute(hWnd, Act, pChar(AFileName), pChar(AParams), pChar(ADefaultDir), SW_SHOWDEFAULT );
  if Result <= 32 then
     raise Exception.Create('Error executing file!');
end;

i poziv

ShellOpenFile(Application.Handle, ExtractFilePath(ParamStr(0)) + 'report.html', '', '')