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 .NET Discussion :

Mettre un lien sur un Tlabel


Sujet :

Delphi .NET

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Mettre un lien sur un Tlabel
    Boujour à toute la communauté de ce forum.
    Je suis un grand débutant en delphi, mais depuis que j'ai découvert ce programme je souhaite savoir l'utiliser. Je me suis donc décidé à réaliser un programme tout simple. Mon problème est que je ne maitrise absolument pas les interactions (entre un click de la souris et les bouttons par exemple) Je voudrais simplement intégrer un lien vers mon site internet dans mon programme.

    Merci d'avance aux connaisseurs qui vont pouvoir éclairer un pauvre newbie comme moi.

    Steadyraph

  2. #2
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Ohla tu choisi pas le plus simple !

    Premièrement pour souligner le label utilise la propriété Font

    Deuxièmement, pour que ton programme réagisse il faut que tu crée un événement associer à OnClick du label.

    Troisièmement dans cet événement, utilise Process.start pour démarrer InternetExplorer avec les bons arguments.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup flash_math pour ta réponse. Pourrait tu simplement m'indiquer comment associer le lien à OnClick ? Je m'excuse de mon ignorance, mais je n'est que très peude connaissance de la syntaxe de Delphi. J'ai pourtant trouvé sur un site les lignes de code suivantes :
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    unit LabelURL;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, ShellAPI;
     
    type
      TLabelURL = class(TLabel)
      private
        { Déclarations privées }
        FURL : string;
        FActiveFont, TempFont : TFont;
        procedure Click; override; //Surcharge de la méthode qui gère le clic sur le composant
        procedure SetActiveFont(SelFont : TFont);
      protected
        { Déclarations protégées }
        procedure WndProc(var Message : TMessage); override; //procedure gérant les messages destinés au composant
      public
        { Déclarations publiques }
        constructor Create(AOwner : TComponent); override;
        destructor Destroy; override;
      published
        { Déclarations publiées }
        property URL : string read FURL write FURL;
        property ActiveFont : TFont read FActiveFont write SetActiveFont;
      end;
     
    procedure Register;
     
    implementation
     
    procedure Register;
    begin
      RegisterComponents('Standard', [TLabelURL]);
    end;
     
    constructor TLabelURL.Create(AOwner : TComponent);
    begin
      inherited;
      FActiveFont       := TFont.Create;
      FActiveFont.Color := clBlue;
      FActiveFont.Style := [fsUnderline];
      TempFont          := TFont.Create;
      TempFont.Assign(Font);
      Cursor            := crHandPoint;
    end;
     
    destructor TLabelURL.Destroy;
    begin
      FActiveFont.Free;
      TempFont.Free;
      inherited;
    end;
     
    procedure TLabelURL.SetActiveFont(SelFont : TFont);
    begin
      FActiveFont.Assign(SelFont);
    end;
     
    procedure TLabelURL.WndProc(var Message : TMessage);
    begin
      case Message.Msg of
        CM_MOUSEENTER : begin // La souris 'entre' sur le composant
          TempFont.Assign(Font);
          Font.Assign(FActiveFont);
          end;
        CM_MOUSELEAVE : // La souris 'sort' du composant
          Font.Assign(TempFont);
        end;
      inherited;
    end;
     
    procedure TLabelURL.Click;
    begin
      inherited;
      if (Parent <> nil) then
        ShellExecute(Parent.Handle, 'Open', PChar(URL), '', '', SW_SHOWNORMAL);
    end;
     
    end.
    Malheureusement ce code ne marche pas : Delphi m'indique une erreur lors de la compilation. Pourrais-tu une fois de plus me renseigner ? Merci d'avance

    Steadyraph

  4. #4
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Pour associer un événement au OnClick, tu cliques sur ton label, puis tu va dans l'inspecteur d'objet, ensuite tu va dans l'onglet Evénement et finalement tu double clique dans la case juste à coté de OnClick. Delphi va te rajouter le squelette de ton événement du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.label1Click(Sender: TObject)
    begin
     
    end;
    Là entre le begin et le end tu utilise Process.Start
    Je penses que le bout de code suivant devrais suffire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    process.start('www.yahoo.fr')
    Le bout de programme que tu as donné ne fonctionne que pour la plateforme Win32, pour la plateforme .Net tu dois utiliser de préférence Process.Start. De plus il s'agit de la création d'un composant donc en lui même pas très interessant car il te faut installer le composant dans la barre d'outils.

    Pour un programme de début, tu ne choisis pas le plus simple. Le plus simple serait de créer une fiche sur laquelle tu places un label et un bouton et lorsque tu cliques sur le bouton le label change.

    Dans l'onglet Evénement tu trouvera toutes les interactions avec un composant et notamment OnClick qui correspond à un clique de souris sur un composant. A chaque fois que tu clique ds la case d'a coté, Delphi te rajoute le code correspondant à la réponse de l'évéenement, il te suffit ensuite de compléter entre begin et end sachant que le paramètre Sender est le composant sur lequel tu as clique.

    Sinon donne moi le message que Delphi te mets et l'endroit de l'erreur.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Désolé mais ca ne marche pas Voici une capture d'écran pour t'aider à comprendre le problème :

    http://img243.imageshack.us/my.php?i...eenshotlu6.png


  6. #6
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Cela signifie tout simplement que process n'est pas déclaré. Il faut indiquer à Delphi où aller chercher la déclaration de la fonction. Pour cela il faut rajouter à ta clause uses le nom de l'unité. Si tu cherche dans l'aide tu trouvera que process.start est déclaré dans system.diagnostics. Il te faut donc rajouté cela après Borland.vcl.StdCtrls

    voila

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci pour ton explication : le lien marche !!!
    Mais pourrais-tu m'expliquer comment faire apparaitre un message lorsque l'on clique sur un bouton ? Merci d'avance pour ta patience et pour ton aide.

  8. #8
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Un message dans une boite de dialogue ?

    Si c'est cela, tu place un bouton sur ta form, soit tu utilise la même technique pour gérer l'événement OnClick ou tout simplement tu double clique sur ton bouton et Delphi va ajouter le gestionanire nécessaire.

    Et cette fois-ci tu appelle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.messagebox('blabla','caption',mb_ok);
    Si tu as une erreur avec le mb_ok il faut que tu déclare windows dans ta clause uses pour que Delphi retrouve la définition de mb_ok.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Merci beucoup ! ca marche super bien !

    Pourrais-tu (désolé mais je suis tellement nul) m'indiquer comment faire appel à une autre fiche de mon programme en cliquant sur un bouton ?

    Merci encore (!!!)

    Steadyraph

  10. #10
    Membre régulier
    Profil pro
    Enseignant
    Inscrit en
    Juillet 2004
    Messages
    128
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juillet 2004
    Messages : 128
    Points : 119
    Points
    119
    Par défaut
    Il serait utile de lire une documentation pour débuter

    Sinon, il te suffit de faire
    ou Regarde dans l'aide pour voir la différence qui existe entre les deux

  11. #11
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par flash_math
    Il serait utile de lire une documentation pour débuter
    tout à fait, par exemple celle-ci
    http://laurent-dardenne.developpez.c...DebuterDelphi/

    Merci d'utiliser à l'avenir les balises code ( icone #).

Discussions similaires

  1. [VirtueMart] Joomla : comment mettre des liens sur ma page d'accueil
    Par SGJ dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 26/08/2009, 23h36
  2. [CS3] : mettre un lien sur un bouton
    Par miha-chan dans le forum Flash
    Réponses: 0
    Dernier message: 18/02/2009, 14h33
  3. Mettre un lien sur une partie de l'image de fond
    Par locoroco dans le forum Dreamweaver
    Réponses: 4
    Dernier message: 27/11/2008, 14h05
  4. Mettre un lien sur un bouton
    Par agavecitheron dans le forum Flash
    Réponses: 1
    Dernier message: 01/04/2008, 21h56
  5. [HTML] Mettre un lien sur une image
    Par mavina dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 24/04/2006, 15h34

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