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

  FORUM HardWare.fr
  Programmation
  C++

  [ Résolu ][ Borland ] Humilié par la portée de mes objets :whistle:

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Résolu ][ Borland ] Humilié par la portée de mes objets :whistle:

n°671074
jeoff
Posté le 11-03-2004 à 21:20:12  profilanswer
 

Bon, le but de la manip : effacer un cercle dessiné précédemment sur un TImage.Pour celà je réutilise la formule pour tracer mon cercle avec cette fois Pen->Color=clWhite (ou un truc du genre).
Comment je procède :
Le centre du cercle est sauvé dans cooxy, variable(TPoint)de la classe coordonnees.
 
Lorsque j'arrive sur mon évènement onclick de mon TImage pour tracer mon cercle, la sauvegarde des coordonnées se passe correctement.
 
En revanche, dès que je sors de onclick pour y réentrer afin d'effacer le cercle, je rapelle cooxy et je me tape les coordonnées par défaut(constructeur) à savoir -1;-1 à la place de celle sauvegardée avant :D.
 
 

Code :
  1. class coordonnees
  2. {
  3.         private:
  4.                 char nature[6];
  5.                 TPoint origine;
  6.                 TPoint destination;
  7.                 TPoint intermediaire[3];
  8.         public:
  9.                 coordonnees()
  10.                 {
  11.                         strcpy(nature,"indef" );
  12.                         nature[5]='\0';
  13.                         origine.x=origine.y=destination.x=destination.y=-1;
  14.                         intermediaire[0].x=intermediaire[0].y=intermediaire[1].x=intermediaire[1].y=intermediaire[2].x=intermediaire[2].y=-1;
  15.                 };
  16.                 ~coordonnees(void){};
  17.                 void savexy(int action,TPoint inter[3]);
  18.                 TPoint savexy(char natur[6],TPoint origin);
  19.                 void savexy(TPoint dest);
  20.                 TPoint find(TPoint origin);
  21. };


 

Code :
  1. /*On click*/
  2. if(couleur==clWhite)   /*erase*/
  3.         {
  4.                 GetCursorPos(&centre);
  5.      centre.x=centre.x-(Form1->Left)-(Form1->EspaceTravail->Left)-4;   // Calcul des coordonnées
  6.                 centre.y=centre.y-(Form1->Top)-(Form1->EspaceTravail->Top)-30;
  7. centre=cooxy.find(centre);
  8.         }
  9.         if (couleur==clBlue)      /*trace*/   
  10.         {
  11.                 GetCursorPos(&centre);
  12.                 centre.x=centre.x-(Form1->Left)-(Form1->EspaceTravail->Left)-4;   // Calcul des coordonnées
  13.                 centre.y=centre.y-(Form1->Top)-(Form1->EspaceTravail->Top)-30;    // souris sur le canvas
  14.                 centre=cooxy.savexy(nature,centre);
  15.         }


 

Code :
  1. TPoint coordonnees::savexy(char natur[6],TPoint origin)
  2. {
  3.         strcpy(nature,natur);
  4.         origin.x=origine.x; 
  5.         origin.y=origine.y;
  6.         return origin;
  7. }
  8. TPoint coordonnees::find(TPoint origin)
  9. {
  10. /*test circle range*/
  11.         if (origin.x<=origine.x+10 && origin.x>=origine.x-10)
  12.         {
  13.                 if (origin.y<=origine.y+10 && origin.y>=origine.y-10)
  14.                 {
  15.                        origin.x=origine.x;
  16.                        origin.y=origine.y;
  17.                        return origin;
  18.                 }
  19.                 else
  20.                 {
  21.                         /*a définir*/
  22.                 }
  23.         }
  24.         else
  25.         {
  26.                 /*a definir*/
  27.         }
  28.        
  29. }
  30. -----
  31. coordonnees cooxy;


 
 
Merci de votre lecture (et de votre courage, cochon inside :D)
 
 
 
RésoluSujet : [ Borland ] Bug à l'affichage de l'interface ???
Voila, le problème est simple, je suis en plein dans le développement d'une appli et plus moyen d'ajouter un objet.
 
Je m'explique: je veux ajouter un bouton, je compile et tout passe niquel sauf que le bouton n'apparaît pas sur l'interface utilisateur.
 
J'ai verifié et forcé visible=true mais pas moyen.
 
Alors j'ai tenté de redimensionner ma TImage qui elle est présente depuis le début. Et bien elle est redimensionnée sous borland mais dès que je compile, elle reprends sa taille précédente sur l'interface utilisateur.
Pourtout je ne touche nulle part à ses attributs de taille en dehors de l'inspecteur d'objet.
 
Donc je me retrouve avec mon interface précédente quoi qu'il arrive...
 
Y à une case du genre vérouiller TForm ou quoi :??:


Message édité par jeoff le 12-03-2004 à 15:32:05
mood
Publicité
Posté le 11-03-2004 à 21:20:12  profilanswer
 

n°671081
fineness
Posté le 11-03-2004 à 21:33:16  profilanswer
 

as tu recréé un fichier éxécutable?? car il se peut que borland ne prenne pas en compte tes modifications ,
pour être sur il te faut refaire un éxécutable.
A titre d'information pour recompiler ton programme tu dois aller dans :
Projet/construite tous les projets.
 
voilà en espérant avoir répondu positivement à ta question.


Message édité par fineness le 11-03-2004 à 21:33:47
n°671312
jeoff
Posté le 11-03-2004 à 23:38:23  profilanswer
 

Merci, c'était bien ça. [:ddr555] J'y penserai la prochaine fois ;)

n°671709
jeoff
Posté le 12-03-2004 à 13:36:21  profilanswer
 

:cry: help :cry: j'ai encore perdu 2h dessus ce matin sans rien trouver :'(

n°671977
jeoff
Posté le 12-03-2004 à 15:30:18  profilanswer
 

Autant en C j'aurai trouvé rapidement mais avec les objets en C++, je galère de trop.
La solution, qui m'est venue en faisant 10 min de digestion ds mon lit, c'est la portée des variables.
Fallait passer mon objet de type coordonnees par adresse sinon ca fait une copie locale et quand on sort de la fonction, ayé ya plus rien :fou: [:tapai] :'(
 


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

  [ Résolu ][ Borland ] Humilié par la portée de mes objets :whistle:

 

Sujets relatifs
[Résolu] Formulaire d'upload et obligation de remplir toutes les cases[JAVA - JAVASCRIPT] Ouvrir la Sun Java Console [Résolu]
[VB Excel] probleme dans textBox [RESOLU][ASM GNU x86] Problème de segmentation fault [Résolu]
[BATCH]Modifier sur le réseau des fichiers [RESOLU][Résolu] Problème de mise en page en colonne sous IE
[api windows] comment créer une 2eme dialogbox[résolu]Borland
[Fortran] Lire un fichier non formaté (résolu)[SQL] Algèbre relationnelle, arbres algèbriques et SQL [resolu]
Plus de sujets relatifs à : [ Résolu ][ Borland ] Humilié par la portée de mes objets :whistle:


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR