Resolvi... no IE7 ele tem um novo handle que chama Address Band Root... ai funfo.... Wesley
{ Captura URL ^} function CapturaUrls ( Handle: THandle; List: TStringList ): Boolean; stdcall; var hWndIE, hWndIEChild : HWND; Buffer : array[0..255] of Char; begin SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0])); { captura o Handle da Janela } hWndIE:=FindWindow('IEFrame', Buffer); { Se Achou } if hWndIE > 0 then begin hWndIEChild:=FindWindowEx(hWndIE, 0, 'WorkerW', nil); if hWndIEChild > 0 then begin hWndIEChild:=FindWindowEx(hWndIEChild, 0, 'ReBarWindow32', nil); if hWndIEChild > 0 then begin hWndIEChild:=FindWindowEx(hWndIEChild, 0, 'ComboBoxEx32', nil); if hWndIEChild > 0 then begin //Pega a URL e trabalha com o valor SendMessage(hWndIEChild, WM_GETTEXT, 255, integer(@Buffer)); List.Add(Buffer); end; end; end; end else begin { captura o Handle da Janela IE7 } hWndIE:=FindWindow('IEFrame', Nil ); if hWndIE > 0 then begin hWndIEChild:=FindWindowEx(hWndIE, 0, 'WorkerW', nil); if hWndIEChild > 0 then begin hWndIEChild:=FindWindowEx(hWndIEChild, 0, 'ReBarWindow32', nil); if hWndIEChild > 0 then begin hWndIEChild:=FindWindowEx(hWndIEChild, 0, 'Address Band Root', nil); if hWndIEChild > 0 then begin hWndIEChild:=FindWindowEx(hWndIEChild, 0, 'ComboBoxEx32', nil); if hWndIEChild > 0 then begin SendMessage(hWndIEChild, WM_GETTEXT, 255, integer(@Buffer)); List.Add(Buffer) end end end end end end; Result:=True; end; From: BandaLemuel Sent: Wednesday, October 08, 2008 12:51 PM To: delphi-br@yahoogrupos.com.br Subject: Re: [delphi-br] tecla identificar ? resolvido Obrigado a todos deu certo... uam duvida que não tem nada haver... eu uso esta função para capturar a URL do navegador IE.... ele não achao IE7 alguiem sabe como fazer.. ??? function CapturaUrls ( Handle: THandle; List: TStringList ): Boolean; stdcall; var hWndIE, hWndIEChild : HWND; Buffer : array[0..255] of Char; begin SendMessage(Handle, WM_GETTEXT, 255, integer(@Buffer[0])); { captura o Handle da Janela } hWndIE:=FindWindow('IEFRAME', Buffer); { Se Achou } if hWndIE > 0 then begin hWndIEChild:=FindWindowEx(hWndIE, 0, 'WorkerW', nil); if hWndIEChild > 0 then begin hWndIEChild:=FindWindowEx(hWndIEChild, 0, 'ReBarWindow32', nil); if hWndIEChild > 0 then begin hWndIEChild:=FindWindowEx(hWndIEChild, 0, 'ComboBoxEx32', nil); if hWndIEChild > 0 then begin //Pega a URL e trabalha com o valor SendMessage(hWndIEChild, WM_GETTEXT, 255, integer(@Buffer)); List.Add(Buffer); end; end; end; end else Form1.mmo1.Text := 'Não achou'; Application.ProcessMessages; Result:=True; end; From: Luciano Calenzani Simões Sent: Wednesday, October 08, 2008 11:50 AM To: delphi-br@yahoogrupos.com.br Subject: Res: [delphi-br] tecla identificar ? resolvido Isso mesmo, crie procedures, uma para read (Get) e outa para write (Set). Daí quanto a property for lida executará a Set e quanto for gravada executará a Set. Inclusive se você usar o complete composite (CTRL+SHIFT+C) ao escrever uma property ele irá sugerir já com essa estrutura (sintaxe). Exemplo, neste caso uma procedure e um field, mas poderia ser uma procedure e uma função: TMinhaClasse = class FTeste: String; procedure SetTeste(const Value: String); { Private declarations } public { Public declarations } property Teste : String read FTeste write SetTeste; end; implementation procedure TMinhaClasse.FormCreate(Sender: TObject); begin end; procedure TMinhaClasse.SetTeste(const Value: String); begin FTeste := Value; end; Luciano Calenzani Simões ----- Mensagem original ---- De: BandaLemuel <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quarta-feira, 8 de Outubro de 2008 11:38:48 Assunto: Re: [delphi-br] tecla identificar ? resolvido Vinicius.. Eu não entendi.... eu declarei assim.... property TipoEntrada : TTipoTexto read FTipoTexto write FTipoTexto default ttTodos ; Como deveria ficar.. assim ??? property TipoEntrada : TTipoTexto read GetTipoTexto write SetTipoTexto default ttTodos ; E devo cria uma procedure GetTipoTexto e SetTipoTexto. .. o componente entende que quando eu alterar ele terá q executá-las ??? Wesley Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas] __________ Information from ESET NOD32 Antivirus, version of virus signature database 3503 (20081008) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas] __________ Information from ESET NOD32 Antivirus, version of virus signature database 3503 (20081008) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com [As partes desta mensagem que não continham texto foram removidas]