Accueil  -  RSS  -  Twitter  -  Wiki  -  FAQ  -  Rechercher  -  Vérification messages privés  -  Connexion  -  Enregistrement

ajout de l'évenement onclick dans une applet ?

 
Poster un nouveau sujet   Répondre au sujet    SPF Index du Forum -> PointUI dans tous ses états
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
ubuntu
Utilisateur néophyte


Inscrit le: 21 Jan 2009
Messages: 14

 #1 MessagePosté le: 27/02/2009 10:48    Sujet du message: ajout de l'évenement onclick dans une applet ? Répondre en citant

Bonjour à tous,

Neophyte en programmation j'essaie d'adapter une applet telle que celle présentée ci-dessous :

Mes questions :

1) comment rendre un applet (tel que celui présenté dans le tutorial "homesweethome") actif via onclick. Quel code et où l' utiliser pour rendre mon image active vers une application ?

@Montecristoff : je rame ..... (désolé !!!)

2) De même dans l'exemple donné, comment associer une icône dans la barre d'applets ????


Code:


class HomeSweetHomeApplet : Applet
{
   // Déclaration du titre
   Label lblTitre;

   // Déclaration de la photo
   Image imgMaMaison;

   // Déclaration de la légende
   Label lblLegende;

   // Préparation du contenu de l'écran
   void Load()
   {
      // Grands caractères, fonte de type Titre
      lblTitre.SetFont("Font.Title");
      // Libellé du titre
      lblTitre.SetText("Home Sweet Home");

      // Chargement de la photo et calibrage en fonction de la résolution de l'appareil
      if (Device.IsVGA())
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",280,180);
      }
      else
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",140,90);
      }

      // Petite fonte pour la légende
      lblLegende.SetFont("Font.Small");
      // Libellé de la légende
      lblLegende.SetText("This is my house!");
      // La légende doit être centrée
      lblLegende.SetAlign("Center","Top");

   }
   void Activated()
   {
      // Premièrement, effacement de l'écran
      Controls.Clear();
   
      // Ajout de l'élément 'Titre' dans l'écran
      Controls.Add(lblTitre);

      // Positionnement du titre en haut et à gauche de l'écran
      // sans changer sa hauteur ni sa largeur
      lblTitre.SetBounds(0,0,GetWidth(),GetHeight());

      // Ajout de l'image sur l'écran
      Controls.Add(imgMaMaison);

      // Centrage de l'image en fonction de la résolution
      if (Device.IsVGA())
      {
            imgMaMaison.SetBounds(100,50);
      }
      else
      {
            imgMaMaison.SetBounds(50,25);
      }

      // Ajout de la légende sur l'écran
      Controls.Add(lblLegende);
   
      // Positionnement de la légende sous la photo, centrée
      if  (Device.IsVGA())
      {
         lblLegende.SetBounds(0,240,GetWidth(),GetHeight());
      }
      else
      {
         lblLegende.SetBounds(0,145,GetWidth(),GetHeight());
      }

   }
}
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montecristoff
Visiteur en Or


Inscrit le: 30 Oct 2007
Messages: 2975

 #2 MessagePosté le: 04/03/2009 19:28    Sujet du message: Répondre en citant

Bonsoir ubuntu,

Désolé pour le léger retard Wink

1) Pour l'évènement OnClick, c'est relativement simple : imaginons que l'on veuille lancer une application pour visionner la photo de la maison en plein écran. En reprenant mon exemple, cela donnera le code suivant :

Code:


class HomeSweetHomeApplet : Applet
{
   // Déclaration du titre
   Label lblTitre;

   // Déclaration de la photo
   Image imgMaMaison;

   // Déclaration de la légende
   Label lblLegende;

   // Préparation du contenu de l'écran
   void Load()
   {
      // Grands caractères, fonte de type Titre
      lblTitre.SetFont("Font.Title");
      // Libellé du titre
      lblTitre.SetText("Home Sweet Home");

      // Chargement de la photo et calibrage en fonction de la résolution de l'appareil
      if (Device.IsVGA())
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",280,180);
      }
      else
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",140,90);
      }

      // Définition de l'évènement Onclick pour capturer le clic sur la photo
      imgMaMaison.OnClick() =  imgMaMaison_OnClick;

      // Petite fonte pour la légende
      lblLegende.SetFont("Font.Small");
      // Libellé de la légende
      lblLegende.SetText("This is my house!");
      // La légende doit être centrée
      lblLegende.SetAlign("Center","Top");

   }
   void Activated()
   {
      // Premièrement, effacement de l'écran
      Controls.Clear();
   
      // Ajout de l'élément 'Titre' dans l'écran
      Controls.Add(lblTitre);

      // Positionnement du titre en haut et à gauche de l'écran
      // sans changer sa hauteur ni sa largeur
      lblTitre.SetBounds(0,0,GetWidth(),GetHeight());

      // Ajout de l'image sur l'écran
      Controls.Add(imgMaMaison);

      // Centrage de l'image en fonction de la résolution
      if (Device.IsVGA())
      {
            imgMaMaison.SetBounds(100,50);
      }
      else
      {
            imgMaMaison.SetBounds(50,25);
      }

      // Ajout de la légende sur l'écran
      Controls.Add(lblLegende);
   
      // Positionnement de la légende sous la photo, centrée
      if  (Device.IsVGA())
      {
         lblLegende.SetBounds(0,240,GetWidth(),GetHeight());
      }
      else
      {
         lblLegende.SetBounds(0,145,GetWidth(),GetHeight());
      }

   }

   void imgScreenshot_OnClick()
   {
         // Lancement de l'album photo pour visualiser la maison en plein écran
         Process.Start("\\Windows\\Menu Démarrer\\Programmes\\Album.lnk","MaMaison.jpg");
   }
}


2. Pour les icones de la barre d'applets et de l'applet manager (là où tu sélectionnes les applets que tu veux afficher ou non), il faut que tu choisisses une image de base au format png et que la déclines en 3 tailles (64x64, 32x32 et 16x16 pixels) pour ensuite les convertir au format jif. Elles doivent porter les noms suivants :
    Icon.Large.jif
    Icon.Medium.jif
    Icon.Small.jif

Et être placées dans le même dossier que l'applet.

Cool
_________________
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
ubuntu
Utilisateur néophyte


Inscrit le: 21 Jan 2009
Messages: 14

 #3 MessagePosté le: 05/03/2009 12:22    Sujet du message: Répondre en citant

Merci .... mais !!!!

1) pour les icones Applets : Cela fonctionne ....
2) quand au script, quelque chose coince, rien ne se passe ?

--> exemple pour le lancement d'un player video :

Code:

class HomeSweetHomeApplet : Applet
{
   // Déclaration du titre
   Label lblTitre;

   // Déclaration de la photo
   Image imgMaMaison;

   // Déclaration de la légende
   Label lblLegende;

   // Préparation du contenu de l'écran
   void Load()
   {
      // Grands caractères, fonte de type Titre
      lblTitre.SetFont("Font.Title");
      // Libellé du titre
      lblTitre.SetText("Home Sweet Home");

      // Chargement de la photo et calibrage en fonction de la résolution de l'appareil
      if (Device.IsVGA())
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",280,180);
      }
      else
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",140,90);
      }

      // Petite fonte pour la légende
      lblLegende.SetFont("Font.Small");
      // Libellé de la légende
      lblLegende.SetText("This is my house!");
      // La légende doit être centrée
      lblLegende.SetAlign("Center","Top");

   }
   void Activated()
   {
      // Premièrement, effacement de l'écran
      Controls.Clear();
   
      // Ajout de l'élément 'Titre' dans l'écran
      Controls.Add(lblTitre);

      // Positionnement du titre en haut et à gauche de l'écran
      // sans changer sa hauteur ni sa largeur
      lblTitre.SetBounds(0,0,GetWidth(),GetHeight());

      // Ajout de l'image sur l'écran
      Controls.Add(imgMaMaison);

      // Centrage de l'image en fonction de la résolution
      if (Device.IsVGA())
      {
            imgMaMaison.SetBounds(100,50);
      }
      else
      {
            imgMaMaison.SetBounds(50,25);
      }

      // Ajout de la légende sur l'écran
      Controls.Add(lblLegende);
   
      // Positionnement de la légende sous la photo, centrée
      if  (Device.IsVGA())
      {
         lblLegende.SetBounds(0,240,GetWidth(),GetHeight());
      }
      else
      {
         lblLegende.SetBounds(0,145,GetWidth(),GetHeight());
      }

   }

   void imgScreenshot_OnClick()
   {
      // Lancement d'un player vidéo
      Process.Start("\\Program Files\\TCPMP\\player.exe");
   }

}
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montecristoff
Visiteur en Or


Inscrit le: 30 Oct 2007
Messages: 2975

 #4 MessagePosté le: 05/03/2009 13:39    Sujet du message: Répondre en citant

ubuntu,

Tu as oublie de declarer l'evenement OnClick de l'image.
Regarde l'exemple que j'ai donne juste au dessus.

Cool
_________________
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
ubuntu
Utilisateur néophyte


Inscrit le: 21 Jan 2009
Messages: 14

 #5 MessagePosté le: 05/03/2009 15:48    Sujet du message: Re: Répondre en citant

Montecristoff a écrit:
ubuntu,

Tu as oublie de declarer l'evenement OnClick de l'image.
Regarde l'exemple que j'ai donne juste au dessus.

Cool

Citation:


@Montecristoff

Même en rajoutant comme illustré en rouge si c'est bien de cela dont tu me parle.... cela cloche car dans ce cas Home2 refuse de se lancer .... grrrr j'y arriverais mais ... Confused



class HomeSweetHomeApplet : Applet
{
// Déclaration du titre
Label lblTitre;

// Déclaration de la photo
Image imgMaMaison;

// Déclaration de la légende
Label lblLegende;

// Préparation du contenu de l'écran
void Load()
{
// Grands caractères, fonte de type Titre
lblTitre.SetFont("Font.Title");
// Libellé du titre
lblTitre.SetText("Home Sweet Home");

// Chargement de la photo et calibrage en fonction de la résolution de l'appareil
if (Device.IsVGA())
{
imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",280,180);
}
else
{
imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",140,90);
}

// Définition de l'évènement Onclick pour capturer le clic sur la photo
imgMaMaison.OnClick() = imgMaMaison_OnClick;

// Petite fonte pour la légende
lblLegende.SetFont("Font.Small");
// Libellé de la légende
lblLegende.SetText("This is my house!");
// La légende doit être centrée
lblLegende.SetAlign("Center","Top");

}
void Activated()
{
// Premièrement, effacement de l'écran
Controls.Clear();

// Ajout de l'élément 'Titre' dans l'écran
Controls.Add(lblTitre);

// Positionnement du titre en haut et à gauche de l'écran
// sans changer sa hauteur ni sa largeur
lblTitre.SetBounds(0,0,GetWidth(),GetHeight());

// Ajout de l'image sur l'écran
Controls.Add(imgMaMaison);

// Centrage de l'image en fonction de la résolution
if (Device.IsVGA())
{
imgMaMaison.SetBounds(100,50);
}
else
{
imgMaMaison.SetBounds(50,25);
}

// Ajout de la légende sur l'écran
Controls.Add(lblLegende);

// Positionnement de la légende sous la photo, centrée
if (Device.IsVGA())
{
lblLegende.SetBounds(0,240,GetWidth(),GetHeight());
}
else
{
lblLegende.SetBounds(0,145,GetWidth(),GetHeight());
}

}

void imgScreenshot_OnClick()
{
// Lancement d'un player video pour test applicatif
Process.Start("\\Program Files\\TCPMP\\player.exe");
}
}


Qu'est ce qui cloche Question

Remarque si je recopie ton script tel quel cela plante également ?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Adidi
Utilisateur néophyte


Inscrit le: 10 Oct 2008
Messages: 43

 #6 MessagePosté le: 05/03/2009 16:01    Sujet du message: Répondre en citant

Désolé si je viens comme un cheveux sur la soupe Rolling Eyes mais je regardais par curiosité et je trouve quand même bizarre:

ubuntu a écrit:
// Définition de l'évènement Onclick pour capturer le clic sur la photo
imgMaMaison.OnClick() = imgMaMaison_OnClick;


ubuntu a écrit:
void imgScreenshot_OnClick()
{
// Lancement d'un player video pour test applicatif
Process.Start("\\Program Files\\TCPMP\\player.exe");
}
}

Ne faudrait-il pas remplacer le "void imgScreenshot_OnClick()" en "void imgMaMaison_OnClick()"?
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montecristoff
Visiteur en Or


Inscrit le: 30 Oct 2007
Messages: 2975

 #7 MessagePosté le: 05/03/2009 16:31    Sujet du message: Re: Répondre en citant

Adidi a écrit:
Ne faudrait-il pas remplacer le "void imgScreenshot_OnClick()" en "void imgMaMaison_OnClick()"?

Oui, bien sur. Merci Adidi.
Desole pour la syntaxe, j'ai tape ca trop vite...

Cool
_________________
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
ubuntu
Utilisateur néophyte


Inscrit le: 21 Jan 2009
Messages: 14

 #8 MessagePosté le: 05/03/2009 16:32    Sujet du message: Re: Répondre en citant

Adidi a écrit:
Désolé si je viens comme un cheveux sur la soupe Rolling Eyes mais je regardais par curiosité et je trouve quand même bizarre:

ubuntu a écrit:
// Définition de l'évènement Onclick pour capturer le clic sur la photo
imgMaMaison.OnClick() = imgMaMaison_OnClick;


ubuntu a écrit:
void imgScreenshot_OnClick()
{
// Lancement d'un player video pour test applicatif
Process.Start("\\Program Files\\TCPMP\\player.exe");
}
}

Ne faudrait-il pas remplacer le "void imgScreenshot_OnClick()" en "void imgMaMaison_OnClick()"?



J'ai essayé .... mais cela bloque également. N'étant pas programmateur et ne connaissant que très peu ce langage ... j'ai préféré ne pas modifier cette commande quoique cela aurais dû être plus logique. Mais bon l'un et l'autre Home se plante.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montecristoff
Visiteur en Or


Inscrit le: 30 Oct 2007
Messages: 2975

 #9 MessagePosté le: 05/03/2009 17:31    Sujet du message: Répondre en citant

J'ai vraiment ete trop vite en oubliant un truc important et en faisant des fautes dans la syntaxe. vraiment desole ubuntu !

Pour recapituler doucement... voila ce qu'il faut ajouter dans le code initial :

> dans la methode de chargement :

Code:
// Empecher les clics d'etre interpretes par les controles pouvant etre dessous
imgMaMaison.SetTabStop(true);
// Definition de l'evenement Onclick pour capturer le clic sur la photo
imgMaMaison.OnClick = imgMaMaison_OnClick;


> puis ajouter la methode declaree :
Code:

void imgScreenshot_OnClick()
{
// Lancement d'un player video pour test applicatif
Process.Start("\\Program Files\\TCPMP\\player.exe");
}


Voila qui doit etre plus correct !

PS : les programmateurs, c'est pour les machines a laver... on parle generalement de programmeurs Wink


Cool
_________________
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
ubuntu
Utilisateur néophyte


Inscrit le: 21 Jan 2009
Messages: 14

 #10 MessagePosté le: 05/03/2009 22:32    Sujet du message: Re: Répondre en citant

Montecristoff a écrit:


PS : les programmateurs, c'est pour les machines a laver... on parle generalement de programmeurs Wink


Cool


Oupd désolé ...... erreur de syntaxe Wink
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
ubuntu
Utilisateur néophyte


Inscrit le: 21 Jan 2009
Messages: 14

 #11 MessagePosté le: 05/03/2009 22:34    Sujet du message: Répondre en citant

Pour ceux que cela intéresse, voilà le script complet :

Code:

class HomeSweetHomeApplet : Applet
{
   // Déclaration du titre
   Label lblTitre;

   // Déclaration de la photo
   Image imgMaMaison;

   // Déclaration de la légende
   Label lblLegende;

   // Préparation du contenu de l'écran
   void Load()
   {
      // Grands caractères, fonte de type Titre
      lblTitre.SetFont("Font.Title");
      // Libellé du titre
      lblTitre.SetText("Home Sweet Home");

      // Chargement de la photo et calibrage en fonction de la résolution de l'appareil
      if (Device.IsVGA())
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",280,180);
      }
      else
      {
         imgMaMaison.Surface.LoadFromFile("MaMaison.jpg",140,90);
      }

      // Empecher les clics d'etre interpretes par les controles pouvant etre dessous
      imgMaMaison.SetTabStop(true);
      // Definition de l'evenement Onclick pour capturer le clic sur la photo
      imgMaMaison.OnClick = imgMaMaison_OnClick;

      // Petite fonte pour la légende
      lblLegende.SetFont("Font.Small");
      // Libellé de la légende
      lblLegende.SetText("This is my house!");
      // La légende doit être centrée
      lblLegende.SetAlign("Center","Top");

   }
   void Activated()
   {
      // Premièrement, effacement de l'écran
      Controls.Clear();
   
      // Ajout de l'élément 'Titre' dans l'écran
      Controls.Add(lblTitre);

      // Positionnement du titre en haut et à gauche de l'écran
      // sans changer sa hauteur ni sa largeur
      lblTitre.SetBounds(0,0,GetWidth(),GetHeight());

      // Ajout de l'image sur l'écran
      Controls.Add(imgMaMaison);

      // Centrage de l'image en fonction de la résolution
      if (Device.IsVGA())
      {
            imgMaMaison.SetBounds(100,50);
      }
      else
      {
            imgMaMaison.SetBounds(50,25);
      }

      // Ajout de la légende sur l'écran
      Controls.Add(lblLegende);
   
      // Positionnement de la légende sous la photo, centrée
      if  (Device.IsVGA())
      {
         lblLegende.SetBounds(0,240,GetWidth(),GetHeight());
      }
      else
      {
         lblLegende.SetBounds(0,145,GetWidth(),GetHeight());
      }

   }

   
   void imgMaMaison_OnClick()
   {
         // Lancement d'un player vidéo pour test applicatif
         Process.Start("\\Program Files\\TCPMP\\player.exe");
   }
}



@Montecristoff

MERCI pour ton aide Very Happy
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    SPF Index du Forum -> PointUI dans tous ses états Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum