Déclencher une commande shape

Résolu
AEC1 Messages postés 98 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 24 décembre 2012 - 3 sept. 2008 à 18:08
AEC1 Messages postés 98 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 24 décembre 2012 - 5 sept. 2008 à 20:37
Bonjours à tous,
je souhaiterais savoir comment à partir d'un bouton qui se trouve dans un panel, puisse déclenché un changement de couleur dans un shape qui se trouve dans un  TabbedNoteBook, enfin je sais changer la couleur d'un shape mais je n'arrive pas à le faire si celui-ci est en dehors du panel où je clique sur le bouton de commande.
Cela doit être pourtant simple à faire, mais là je cale.
Merci de votre réponse, amitiés à tous...
AEC1

5 réponses

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
3 sept. 2008 à 22:47
Bonsoir,
montre nous un peu le code que tu utilises, on va regler ça :)
merci
3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
3 sept. 2008 à 23:36
procedure TForm3.Button1Click(Sender: TObject);
begin
  Shape1.Brush.Color := clBlack;
end;




tout simplement.

les Control de type ScrollBox, Panel, etc ne sont que des containers.
Les composants qu'ils contiennent sont tous déclaré a la racine de la fiche parente.

donc même si la Shape1 se trouve dans le Panel150 qui lui est dans le Panel149 qui est lui même dans le Panel148 owné par le Panel147 donc le parent est Panel146 qui est contenus par Panel145 qui se trouve dans le Panel144 qui lui est placé dans le Panel143 et ainsi de suite...

pour acceder a Shape1 qui se trouve au fin fond de tout ce bordel sans nom, c'est simple,
on appel juste "Shape1" dans le code de la fiche.
c'est sur que si tu commence a vouloir faire :

Form1 (deja c'est pas bon) donc
Form1.Panel1.Panel2.Panel3.Panel4.Panel5.Panel6.Panel7.PageControl1.Panel8.Panel9.Shape1
c'est clair que ça marchera pas.

En passant TTabedNotebook est un vieux composant pourris qui date de Delphi 1.0 et prevus pour Win 3.1.
Inutile de te rappeler que c'est totalement obsolete.
Tu dois plutot utiliser TPageControl (palette Win32 ou Windows)

3
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
4 sept. 2008 à 20:13
mode conception -> selectionne le bouton
gestionnaire d'objet -> evenement -> OnClick -> double clique sur l'evenement
mode edition -> procedure Click générée automatiquement :

procedure TFormX.ButtonDansPanelClick(Sender: TObject);
begin
     Shape3.Brush.Color:=ClLime;
     Shape3.Pen.Color:=ClGreen;
end;

voila.

Même quand une application est términée, il y a toujours moyen de modifer, de maniere simple et efficace.
si comme moi, lors de l'utilisation d'un PageControl (ou TabbedNoteBook) tu place un Panel en mode AlClient pour y mettre tes composants, tu peu deplacer facilement ces Panels dans une PageControl que tu aura reglé au préalable comme le TabbedNoteBook (dimenssions, pages etc).

3
AEC1 Messages postés 98 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 24 décembre 2012
4 sept. 2008 à 05:47
Merci pour vos infos,
voici le simple code que je cherche à déclencher à partir d'un bouton qui se situe donc dans un panel:  
     Shape3.Brush.Color:=ClLime;
     Shape3.Pen.Color:=ClGreen;
alors que ce composant shape3 se trouve dans un  TabbedNoteBook.
Pour info l'application est déjà terminée et donc je suis obligé maintenant de faire avec. A l'avenir je prendrais le TPageControl que tu me conseil.
merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AEC1 Messages postés 98 Date d'inscription mercredi 31 octobre 2007 Statut Membre Dernière intervention 24 décembre 2012
5 sept. 2008 à 20:37
merci pour ton aide, et vraiment trop simple pour y être passer à côté.
Qui plus est, j'ai déjà la procédure OnClick utilisée pour autre chose et je n'ai eu qu'à rajouter le shape en question.
A l'avenir je prendrais plus de recule quand aux différents choix de composants proposés. Mais malgré tout, retouché une application assez lourde sur le plan graphique me faisais un peu peur, au risque de perdre quelques composants en cours de route.
Merci encore et excuse le dérangement.

AEC1
0
Rejoignez-nous