conseiller expert - questions diverses - page 37

 

#Objet Mixte - Ouvert

J'ai déjà posé plusieurs fois la question à ce sujet, mais je n'ai pas obtenu de bonnes réponses.
Et j'ai déjà essayé de trouver une solution sur SEO. Il n'y avait rien pour mon problème (il est possible que la cause est mon anglais limité) ... et puis j'ai décidé que je pourrais demander une fois de plus sur cette question avec plus clairement décrit ( j'espère que je le fais ... ).

C'est pourquoi j'ai écrit un code d'exemple pour que le codeur et le programmeur comprennent facilement mon problème.

Note : les paramètres des deux objets pourraient être comme ci-dessous.

ObjectCreate(0,"Button",OBJ_BUTTON,0,0,0);
ObjectSetString(0,"Button",OBJPROP_TEXT,"Click -");
ObjectSetInteger(0,"Button",OBJPROP_XDISTANCE,100);
ObjectSetInteger(0,"Button",OBJPROP_YDISTANCE,20);
ObjectSetInteger(0,"Button",OBJPROP_XSIZE,80);
ObjectSetInteger(0,"Button",OBJPROP_YSIZE,30);
ObjectSetInteger(0,"Button",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
ObjectSetInteger(0,"Button",OBJPROP_COLOR,clrWhite);
ObjectSetInteger(0,"Button",OBJPROP_BGCOLOR,clrGray);
ObjectSetInteger(0,"Button",OBJPROP_STATE,false);
ObjectSetInteger(0,"Button",OBJPROP_BACK,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTED,false);
ObjectSetInteger(0,"Button",OBJPROP_ZORDER,1);

ObjectCreate(0,"Hline",OBJ_HLINE,0,0,WindowPriceMax() - ( 40 * Point ));
ObjectSetInteger(0,"Hline",OBJPROP_COLOR,clrBlue);
ObjectSetInteger(0,"Hline",OBJPROP_BACK,false);
ObjectSetInteger(0,"Hline",OBJPROP_ZORDER,0);

#msissue - bouton hline mixte

Merci d'avance.

 
Mais quel est le problème ?
 
Marco vd Heijden:
Mais quel est le problème ?
Lorsque je dois cliquer sur l'objet bouton, l'objet ligne passe également en mode sélectionné.
 
ObjectCreate(0,"Button",OBJ_BUTTON,0,0,0);
ObjectSetString(0,"Button",OBJPROP_TEXT,"Click -");
ObjectSetInteger(0,"Button",OBJPROP_XDISTANCE,100);
ObjectSetInteger(0,"Button",OBJPROP_YDISTANCE,20);
ObjectSetInteger(0,"Button",OBJPROP_XSIZE,80);
ObjectSetInteger(0,"Button",OBJPROP_YSIZE,30);
ObjectSetInteger(0,"Button",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
ObjectSetInteger(0,"Button",OBJPROP_COLOR,clrWhite);
ObjectSetInteger(0,"Button",OBJPROP_BGCOLOR,clrGray);
ObjectSetInteger(0,"Button",OBJPROP_STATE,false);
ObjectSetInteger(0,"Button",OBJPROP_BACK,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTED,false);
ObjectSetInteger(0,"Button",OBJPROP_ZORDER,1);

ObjectCreate(0,"Hline",OBJ_HLINE,0,0,WindowPriceMax() - ( 40 * Point ));
ObjectSetInteger(0,"Hline",OBJPROP_COLOR,clrBlue);
ObjectSetInteger(0,"Hline",OBJPROP_BACK,true);
ObjectSetInteger(0,"Hline",OBJPROP_ZORDER,0);
 
Marco vd Heijden:

Pourtant, lorsque je clique sur l'objet Button, l'objet Hline est sélectionné.

Merci beaucoup.

 

Quand vous le fixez :

ObjectSetInteger(0,"Hline",OBJPROP_BACK,true);

La ligne sera derrière le bouton.

Mais vous avez raison, elle sera toujours sélectionnée.

Donc, selon que la ligne doit être ajustée manuellement, vous pouvez ajouter :

ObjectSetInteger(0,"Hline",OBJPROP_SELECTABLE,false);
 
Marco vd Heijden:

Désolé, mais parfois j'ai besoin de sélectionner " Hline ".
C'est très important pour moi.

Lorsque je clique sur l'objet Button, si Hline est sélectionné, c'est très dangereux pour moi.

 

Ensuite, vous devez faire glisser un peu l'échelle verticale pour que la ligne sorte de dessous le bouton.

Le bouton ne nécessite qu'un seul clic, alors que la ligne en nécessite deux. Si cela vous ennuie vraiment, vous pouvez lancer un compteur qui définit la ligne comme fixe pendant un court laps de temps, après que le bouton ait été pressé.

 
Marco vd Heijden:

Le bouton ne nécessite qu'un seul clic alors que la ligne en nécessite deux. Si cela vous ennuie vraiment, vous pouvez lancer un compteur qui définit la ligne comme fixe pendant un court laps de temps, après que le bouton ait été pressé.

J'ai déjà posé cette question dans mon autre sous-thème - mais je pense que cela ne me sera pas utile.
J'ai une idée mais je ne sais pas comment faire - mais je suis sûr que je vais essayer quelque chose pour cela. Parce que je pense que c'est un moyen plus sûr que celui-là.

Merci pour vos commentaires.

( Je vais bientôt commencer à faire des recherches sur mon idée - j'espère que je vais le faire moi-même... )

 

Dans le code qui est exécuté lorsque l'on clique sur le bouton, incluez le code

ObjectSetInteger(0,"Hline",OBJPROP_SELECTED,false);
de sorte que si vous sélectionnez la ligne lorsque vous cliquez sur le bouton, elle sera automatiquement désélectionnée.