IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

TLabel linkable (internet)


Sujet :

Delphi

  1. #1
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut TLabel linkable (internet)
    Bonjour,

    Pour réaliser un TLabel linkable, j'ai renseigné TLabel.Hint avec l'adresse web et à l'évenement OnClick, je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    ShellExecute(Application.Handle,PChar('open'),PChar(Label1.Hint),PChar(''),nil, SW_NORMAL);
    ...
    Cela fonctionne très bien à un détail près: La commande ShellExecute si j'ai déjà un navigateur d'ouvert, écrase la navigation en cours.

    Or, je voudrais avoir un nouveau navigateur qui s'ouvre à chaque fois que je clique sur mon TLabel.

    J'ai consulté la doc de Shellexecute et celle des paramètres d'internet explorer en ligne de commande, mais je ne trouve rien à ce sujet.

    Comment faire? Merci!

    Ghost.

    (j'utilise Delphi6 Enter.)

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Je crois qu'il faut explicitement lancer le browser avec l'url en paramètre.

  3. #3
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    C'est à dire lancer nominativement un navigateur (Mozilla,I.E,Opera...) ?!

    Mais dans ce cas là, on y perd en souplesse.

    Comment font alors les applications classiques pour appeler le navigateur par défaut lorsqu'on clique sur un lien:
    -si click simple, écrasement de la navigation en cours,
    -si click+shift maintenu, nouveau navigateur.

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Pour ma part j'utilise le ShellExecute de la manière suivante dans un double-clic et ca m'ouvre un nouvel onglet dans firefox automatiquement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        ShellExecute(0,'OPEN',PCHAR('Http://' + TDBEdit(Sender).Text),nil,nil,SW_SHOW);
    La différence c'est que je n'ai pas de PCHAR qui entoure le "OPEN" et j'utilise SW_SHOW au lieu de SW_NORMAL.
    Si ca ne fonctionne pas, c'est que c'est lié aux configurations du navigateur internet
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Voici le code permettant de procéder...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    procedure TForm1.NextGrid1SelectCell(Sender: TObject; ACol, ARow: Integer);
    var url:string;
        Browser: string;
    function GetBrowser(var butineur:string): boolean;
     
    begin
       Result := True;
       butineur := '';
       with TRegistry.Create do
          try
            RootKey := HKEY_CLASSES_ROOT;
            Access := KEY_QUERY_VALUE;
            if OpenKey('\htmlfile\shell\open\command', False) then
              butineur := ReadString('') ;
            CloseKey;
          finally
            Free;
          end;
       if butineur = '' then
       begin
         Result := False;
         Exit;
       end;
       butineur := Copy(Browser, Pos('"', Browser) + 1, Length(Browser)) ;
       butineur := Copy(Browser, 1, Pos('"', Browser) - 1) ;
    end;
     
    begin
         if ACol<>2 then Exit;
         url:=NextGrid1.Cell[3,ARow].AsString;
         if url='' then begin
            MessageBox(Handle, 'URL invalide.', PChar('Erreur'), MB_OK + MB_ICONSTOP);
            Exit;
         end;
         if NextGrid1.Cell[1,ARow].AsBoolean then
            if GetBrowser(Browser) then
               ShellExecute(Handle,'OPEN',PChar(Browser),PChar(url),Nil,SW_SHOW)
               else begin
               MessageBox(Handle, 'Navigateur par défaut non trouvé.', PChar('Erreur'), MB_OK + MB_ICONSTOP);
               Exit;
               end
         else
         ShellExecute(Handle,'OPEN',PChar(url),Nil,Nil,SW_SHOW);
    end;
    voir l'utilisation de la fonction GetBrowser...

  6. #6
    Membre confirmé Avatar de ghost942
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 112
    Par défaut
    J'ai adapté ton code et cela fonctionne à merveille! Merci qi130

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53
  2. registre de connexion windows internet
    Par lafaryan dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/08/2002, 12h52
  3. Tester connexion Internet active sous Windows
    Par Altau dans le forum Développement
    Réponses: 3
    Dernier message: 12/08/2002, 12h43
  4. Coposant Tlabel
    Par Andry dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2002, 09h41
  5. internet explorer
    Par numeror dans le forum Web & réseau
    Réponses: 2
    Dernier message: 22/07/2002, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo