[ peradetlickljucadrvo @ 21.09.2010. 16:17 ] @
pozdrav!naleteo sam na jedan clanak na http://delphi.about.com/od/windowsshellapi/l/aa060303b.htm o tome kako dobiti text iz ie edit polja za adrese..i naravno hteo sam da ga pokrenem medjutim stalno mi javlja gresku 'Variable required',pa ako bi neko mogao da mi kaze u cemu je stvar..

...
function GetUrlFromIE (Handle: THandle; List: TStringList): boolean; stdcall;
...
procedure TForm1.btnRefreshClick(Sender: TObject);
begin
lbIEURL.Clear;
EnumWindows(@GetUrlFromIE, LParam(lbIEURL.Items)); <---GRESKA
end;

function GetUrlFromIE (Handle: THandle; List: TStringList):
boolean; stdcall;
var
hWndIE, hWndIEChild : HWND;
Buffer : array[0..255] of Char;
begin
//get the window caption
SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0]));
//look for the Internet Explorer window with "Buffer" caption
hWndIE := FindWindow('IEFrame', Buffer);
if hWndIE > 0 then
begin
//try to get a handle to IE's toolbar container
hWndIEChild := FindWindowEx(hWndIE, 0, 'WorkerW', nil);
if hWndIEChild > 0 then
begin
//get a handle to address bar
hWndIEChild := FindWindowEx(hWndIEChild, 0, 'ReBarWindow32', nil);
if hWndIEChild > 0 then
begin
//finally, locate combo box and add its text to the list
hWndIEChild := FindWindowEx(hWndIEChild, 0, 'ComboBoxEx32', nil);
if hWndIEChild > 0 then
begin
SendMessage(hWndIEChild, WM_GETTEXT, 255, integer(@Buffer));
//List.AddObject(Buffer,TObject(hWndIE));
List.Add(Buffer)
end;
end;
end;
end;
//continue enumeration
Result :=True;
end; (*GetUrlFromIE*)
[ savkic @ 21.09.2010. 19:27 ] @
> kako dobiti text iz ie edit polja za adrese..i naravno hteo sam da ga pokrenem medjutim stalno mi javlja gresku 'Variable required',pa ako
> bi neko mogao da mi kaze u cemu je stvar..

Verovatno drugačija deklaracija funkcije u odnosu na verziju kada je pisan kod. Napiši gde ti tačno javlja grešku i koji delphi koristiš.
Pokušaj i da kod pišeš između code tagova, mnogo je preglednije.
[ peradetlickljucadrvo @ 21.09.2010. 19:58 ] @
koristim delphi 7..stavio sam strelicu gde je greska,kod "EnumWindows(@GetUrlFromIE, LParam(lbIEURL.Items));"
hvala!
[ abitbp6 @ 21.09.2010. 23:37 ] @
Code:

procedure TForm1.btnRefreshClick(Sender: TObject);
var
  s: TStringList;
begin
  s := TStringList.Create();
  s.Clear;
  EnumWindows(@GetUrlFromIE, LParam(s));
  lbIEURL.Clear;
  lbIEURL.Items.AddStrings(s);
  s.Free;
end;
[ peradetlickljucadrvo @ 22.09.2010. 03:17 ] @
@abitbp6
ne vredi,opet prijavljuje istu gresku.. :/
[ savkic @ 22.09.2010. 11:36 ] @
> ne vredi,opet prijavljuje istu gresku.. :/

Koja kontrola ti je lbIEURL?

Da nisi negde redeklarisao EnumWindows? Pošalji jedan test projekat.
[ peradetlickljucadrvo @ 22.09.2010. 15:15 ] @
lbIEURL je ListBox..evo ti pa pogledaj..
[ savkic @ 22.09.2010. 16:43 ] @
1) GetUrlFromIE mora biti obična funkcija ne metoda, dakle izbaci deklaraciju iz forme.
2) Svaka funkcija (pa i GetUrlFromIE) mora biti deklarisana pre nego što se može pozvati, dakle, njena definicija mora doći pre pozivanja u TForm1.Button1Click.
[ peradetlickljucadrvo @ 23.09.2010. 14:33 ] @
resio,hvala!