Como abrir um site pelo delphi?

Delphi

29/06/2008

Gostaria da ajuda de vocês para descobrir como abrir um site pelo delphi
utilizando um edit como referência.

Visto que a função HlinkNavigateString não funciona quando colocamos um edit para determinar o site:


Já tentei das seguintes formas:

HlinkNavigateString(nil,Edt_Website.Text);
HlinkNavigateString(nil,StringToWideChar(Edt_Website.Text));


Desde já agradeço a atenção de todos.


Lnunes

Lnunes

Curtidas 0

Respostas

Onjahyr

Onjahyr

29/06/2008

E ae, tudo bom?

É o seguinte. Na uses você acrescenta a unit: [b:b384cc1fc3]ShellAPI[/b:b384cc1fc3]

ShellExecute(Handle,´open´,PAnsiChar(Edit1.Text),nil,nil,SW_SHOWNORMAL);

Testa ae e dá um retorno se funcionou, em vez de ´PAnsiChar´ pode ser PChar também, mas se o endereço fou muito grande é bom usar o que indiquei...


Blz.


GOSTEI 0
Onjahyr

Onjahyr

29/06/2008

E ae, tudo bom? É o seguinte. Na uses você acrescenta a unit: [b:f1e9f72cd7]ShellAPI[/b:f1e9f72cd7] ShellExecute(Handle,´open´,PAnsiChar(Edit1.Text),nil,nil,SW_SHOWNORMAL); Testa ae e dá um retorno se funcionou, em vez de ´PAnsiChar´ pode ser PChar também, mas se o endereço fou muito grande é bom usar o que indiquei... Blz.


O bom é deixar o http:// por dentro da chamada para garantir que já esteja pois se não tiver pode ser que não abra o navegador... Exemplo:

ShellExecute(Handle,´open´,´http://´ + PAnsiChar(Edit1.Text),nil,nil,SW_SHOWNORMAL);

No evento do botão click você acrescenta o comando Copy() para retirar o ´http://´ caso o usuário digitou ele, entende?

var
Endereco : String;
begin
if Pos(´http://´,Edit1.Text) <> 0 then
Endereco := Copy(Edit1.Text,Pos(´http://´,Edit1.Text) + 7, Length(Edit1.Text) -7)
else
Endereco := Edit1.Text;

Não testei, tenta aí e vê o que acontece...


Blz


GOSTEI 0
Lnunes

Lnunes

29/06/2008

onjahyr obrigado pela ajuda, vou testar o código.


GOSTEI 0
Onjahyr

Onjahyr

29/06/2008

Olhando novamente verifiquei que vai dar erros. Faz assim oh:


procedure TForm1.Button1Click(Sender: TObject);
var
  Endereco : String;
begin
  Edit1.Text := Trim(Edit1.Text);

  if (Pos(´http://´,Edit1.Text) or
      Pos(´https://´,Edit1.Text)) <> 0 then
    Endereco := Edit1.Text
  else
    begin
      Endereco := ´http://´ + Edit1.Text; // Padrão
      Edit1.Text := ´http://´ + Edit1.Text;
    end;

  ShellExecute(Handle,´open´,PCHAR(Endereco),nil,nil,SW_SHOWNORMAL);
end;




Você pode implementar mais alguma rotina, por exemplo: Para verificar se o endereço é um endereço válido, etc....
Bom, dessa vez com certeza vai dar certo!!!!


GOSTEI 0
POSTAR