Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3530 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  ,(sender as Tbutton) en c++ ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

,(sender as Tbutton) en c++ ??

n°160507
mik38
Posté le 17-06-2002 à 10:00:26  profilanswer
 

Bonjour

mood
Publicité
Posté le 17-06-2002 à 10:00:26  profilanswer
 

n°160512
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 10:07:35  profilanswer
 

:hello:


---------------
J'ai un string dans l'array (Paris Hilton)
n°160517
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 10:14:45  profilanswer
 

Tu voulais donc nous parler de C++ et de TButton ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°160534
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 10:32:59  profilanswer
 

:eek2:


---------------
Le Tyran
n°160535
mik38
Posté le 17-06-2002 à 10:33:58  profilanswer
 

Toutes mes excuses... :o  
un petit dérapage et voilà que mon message inachevé se retrouve posté..! :pt1cable:  
En fait j'aimerais savoir comment on fait pour transtyper en c++  
 (exemple (sender as TButton) en delphi)
Imaginons que je veuille créer un évement sur le click d'un bouton qui changerait son caption qui serait commun à plusieurs boutons donc généraliser en me servant du Sender.
 
Merci d'avance,

n°160539
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 10:38:04  profilanswer
 

Je pense que tu bosse avec C++builder, t'aurais donc un TObject *Sender en entrée:
 

Code :
  1. TButton *button = dynamic_cast<TButton*> (Sender);


---------------
Le Tyran
n°160546
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 10:42:29  profilanswer
 

Essaie avec la macro "dynamic_cast"


---------------
J'ai un string dans l'array (Paris Hilton)
n°160548
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 10:42:52  profilanswer
 

grilled :(


---------------
J'ai un string dans l'array (Paris Hilton)
n°160565
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 11:03:08  profilanswer
 

Harkonnen a écrit a écrit :

grilled :(  




HeHe  :D


---------------
Le Tyran
n°160571
mik38
Posté le 17-06-2002 à 11:07:00  profilanswer
 

Merci  :)  
 
dur dur le c++  ;)

mood
Publicité
Posté le 17-06-2002 à 11:07:00  profilanswer
 

n°160576
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 11:11:04  profilanswer
 

meu non ! c'est les premiers instants qui font le plus mal :)


---------------
J'ai un string dans l'array (Paris Hilton)
n°160587
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-06-2002 à 11:23:54  profilanswer
 

sinon plus facile :
((TButton *)Sender)->.....
 
mais bon c'est peut-être moins propre :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°160589
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 11:26:07  profilanswer
 

antp a écrit a écrit :

sinon plus facile :
((TButton *)Sender)->.....
 
mais bon c'est peut-être moins propre :o  




 
effectivement c pas propre du tout :D


---------------
Le Tyran
n°160590
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-06-2002 à 11:27:35  profilanswer
 

bah c'est comme ça que Borland le fait dans ses exemples :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°160592
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 11:28:42  profilanswer
 

surprenant de leur part... Microsoft utilise dynamic_cast dans le MSDN


---------------
J'ai un string dans l'array (Paris Hilton)
n°160602
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-06-2002 à 11:34:44  profilanswer
 

je retrouve justement pas d'exemples... j'ai peut-être rêvé :heink:
 
enfin sinon en general je fais un truc du genre
 
if Sender is TButton then
  (Sender as TButton).machin
 
ou
 
if Sender is TButton then
  TButton(Sender).machin
 
en Pascal (les deux sont équivalents il me semble), où y a pas d'autres moyen de faire un cast, il lance d'office une exception comme le dynamic cast ; donc c'est vrai qu'en C++ c'est mieux d'utiliser dynamic cast...
j'imagine que le cast bourrin ((TButton *)Sender) ça crashe si c'est pas un TButton ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°160604
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 11:36:09  profilanswer
 

Harkonnen a écrit a écrit :

surprenant de leur part... Microsoft utilise dynamic_cast dans le MSDN  




Le pb c que le dynamic_cast est bugué dans le VC++ 6 :D vaut mieux faire un static_cast.


---------------
Le Tyran
n°160606
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-06-2002 à 11:36:52  profilanswer
 

:ouch: comment ça buggé ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°160611
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 11:38:18  profilanswer
 

antp a écrit a écrit :

:ouch: comment ça buggé ?  




 
Bun il marche pas comme il faut. Je connais pas les détails de la chose mais je sais qu'il y a un problème avec.


---------------
Le Tyran
n°160614
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 11:39:52  profilanswer
 

letoII a écrit a écrit :

 
Le pb c que le dynamic_cast est bugué dans le VC++ 6 :D vaut mieux faire un static_cast.  




j'ai jamais testé avec VC++ 6, mais dans le 7 il ne semble pas y avoir de souci...


---------------
J'ai un string dans l'array (Paris Hilton)
n°160618
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 11:40:28  profilanswer
 

antp a écrit a écrit :

j'imagine que le cast bourrin ((TButton *)Sender) ça crashe si c'est pas un TButton ?  




sans aucun doute !


---------------
J'ai un string dans l'array (Paris Hilton)
n°160629
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 11:47:07  profilanswer
 

Harkonnen a écrit a écrit :

 
sans aucun doute !  




 
Non si tu fais pas un appel de méthode et que tu reste dans la mémoire associée à l'objet ça peut passer, mais bon faut avoir vraiment de la chance et de toute menière ça fait n'importe quoi :)


---------------
Le Tyran
n°160654
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 17-06-2002 à 12:01:44  profilanswer
 

clair... faut avoir vraiment un coup de bol monstre pour que ça fonctionne sans pb...


---------------
J'ai un string dans l'array (Paris Hilton)
n°161279
mik38
Posté le 17-06-2002 à 19:25:39  profilanswer
 

En quoi ((TButton *)Sender) c'est moins propre et plus bourrin que le dynamic_cast?? :sarcastic:
Histoire que j'approfondisse le sujet, même si à mon niveau les 2 font l'affaire et que donc vous avez déjà résolu mon pb, en vous remerciant.. :jap:

n°161282
LetoII
Le dormeur doit se réveiller
Posté le 17-06-2002 à 19:29:50  profilanswer
 

Tout simplement dans la norme c++ dynamic_cast est l'oppérateur à utiliser lorsque l'ont cast un pointeur d'une classe mère vers un pointeur d'une classe fille. C'est fait pour.


---------------
Le Tyran
n°161288
antp
Super Administrateur
Champion des excuses bidons
Posté le 17-06-2002 à 19:45:00  profilanswer
 

mik38 a écrit a écrit :

En quoi ((TButton *)Sender) c'est moins propre et plus bourrin que le dynamic_cast?? :sarcastic:




 
bhen dynamic cast lance une exception si jamais tu ne pouvais pas faire le cast (genre tu caste un TButton en une classe que tu as créée toi-même et qui n'a aucun lien de parenté), alors que le ((TButton *)Sender) bhen ça risque de planter si tu pouvais pas le faire, mais ça plantera pas à tous les coups, donc bug difficile à déceler.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  ,(sender as Tbutton) en c++ ??

 

Sujets relatifs
Plus de sujets relatifs à : ,(sender as Tbutton) en c++ ??


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)