Discussion de l'article "Étudier la classe CCanvas. Comment dessiner des objets transparents" - page 2

 
denkir:

La question est la suivante. Quelle pourrait être la meilleure implémentation pour déplacer le kanvas autour du graphique ? Quelque chose comme une méthode :

"canvas" - crée un OBJ_BITMAP_LABEL ou OBJ_BITMAP standard. Dans l'aide, il y a des fonctions sur la façon de les placer sur le graphique.

 //+------------------------------------------------------------------+
//|| Déplace l'objet "Étiquette graphique".
//+------------------------------------------------------------------+
bool BitmapLabelMove(const long   chart_ID=0,      // ID du graphique
                     const string name="BmpLabel", // nom de la balise
                     const int    x=0,             // Coordonnée de l'axe X
                     const int    y=0)             // Coordonnée de l'axe Y
  {
//--- réinitialiser la valeur de l'erreur
   ResetLastError();
//--- déplacer l'objet
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x))
     {
      Print(__FUNCTION__,
            " : le déplacement de la coordonnée X de l'objet a échoué ! Code d'erreur = ",GetLastError());
      return(false);
     }
   if(!ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y))
     {
      Print(__FUNCTION__,
            " : le déplacement de la coordonnée Y de l'objet a échoué ! Code d'erreur = ",GetLastError());
      return(false);
     }
//--- exécution réussie
   return(true);
  }

Je n'ai pas remarqué tout de suite la discussion ci-dessus :) - en fait, c'est la même chose que ZORDER, seulement X et Y

 
MigVRN:

"canvas" - crée un OBJ_BITMAP_LABEL ou un OBJ_BITMAP standard. Il existe des fonctions dans l'aide pour les placer sur le graphique.

Je n'ai pas remarqué tout de suite la discussion ci-dessus :) - en fait, c'est la même chose que ZORDER, seulement X et Y

Aha, merci, ça a marché... J'ai essayé d'utiliser ObjectMove moi-même...

Je suis en train de créer un panneau en utilisant kanvas..... J'ai besoin de le déplacer le plus loin possible sur le graphique....
 
denkir:

Oui, merci, ça a marché... J'ai essayé d'utiliser ObjectMove moi-même...

Je crée un panneau à l'aide de kanvas... J'ai besoin de le déplacer le plus loin possible sur le graphique...
Et si le panneau est créé sur la base d'un dialogue standard ? Alors tous les éléments créés dans le dialogue et ajoutés à celui-ci seront déplacés en même temps que le dialogue.
 
barabashkakvn:
Que se passe-t-il si le panneau est créé sur la base d'un dialogue standard ? Tous les éléments créés dans le dialogue et ajoutés à celui-ci seront alors déplacés avec le dialogue.
Oui, c'est une fonction pratique, je suis d'accord... C'est ce que j'ai fait jusqu'à présent... mais il y a une question sur la façon d'ajouter des graphiques personnalisés au panel.... en général, il est nécessaire de créer un contrôle de type kanvas : public CWndObj. Maintenant je réfléchis à cette question...
 
denkir:
Oui, c'est une fonction pratique, je suis d'accord..... C'est ce que je faisais jusqu'à présent... mais il y avait une question sur la façon d'ajouter des graphiques personnalisés au panneau.... en général, il est nécessaire de créer un contrôle de type kanvas : public CWndObj. Maintenant je réfléchis à cette question...

Regardez la vidéo de l'article.

Après le 15 mars, le code source sera disponible

 
denkir:
Oui, c'est une fonction pratique, je suis d'accord..... C'est ce que je faisais jusqu'à présent... mais il y avait une question sur la façon d'ajouter des graphiques personnalisés au panneau.... en général, il est nécessaire de créer un contrôle de type kanvas : public CWndObj. Maintenant, je réfléchis à cette question...

Qu'entendez-vous par"graphiques personnalisés" ?

  • Est-ce que c'est quelque chose que vous dessinez en tant que programmeur ?
  • Je veux dire qu'il s'agit d'une image prise par l'utilisateur du programme et que cette image doit être affichée sur le canevas ?
 
barabashkakvn:

Qu'entendez-vous par "graphiques personnalisés" ?

  • c'est-à-dire quelque chose que vous dessinez en tant que programmeur ?
  • Je veux dire qu'il prend une image de l'utilisateur du programme et que cette image doit être affichée sur le canevas ?
Oui, j'étais vague..... Je voulais parler de la possibilité de créer dynamiquement des figures différentes au moyen des méthodes de la classe CCanvas...
 

Vladimir, je voulais te poser une autre question.

Il y a un panneau de type CAppDialog. L'un de ses éléments est une étiquette graphique de type CBmpButton. Y a-t-il un moyen de créer un canevas et de le lier à l'étiquette spécifiée ? Le but est d'avoir un élément de panneau contrôlable avec des capacités graphiques personnalisées... ?

Je vous remercie.

 
denkir:

Vladimir, je voulais te poser une autre question.

Il y a un panneau de type CAppDialog. L'un de ses éléments est une étiquette graphique de type CBmpButton. Le but est d'avoir un élément de panneau contrôlable avec des capacités graphiques personnalisées... ?

Merci...

Vous pouvez créer des canevas (c'est-à-dire plusieurs canevas) sans les lier à un objet graphique via la méthode Create, puis vous affectez ces ressources au BmpButton. Vous pouvez même essayer de créer des animations. D'ailleurs, j'ai envie de réfléchir à l'animation pendant longtemps.
 

Vladimir, merci pour l'astuce, tout s'est arrangé !

Oui, les toiles sont très puissantes :-)

Nous attendons des articles intéressants de votre part !