[Borland/C++]Pkoi ca marche pas ???

Pkoi ca marche pas ??? [Borland/C++] - Programmation

Marsh Posté le 15-01-2002 à 10:15:13    

G besoin de faire un TtreeView dynamiquement, dans la méthode ou on arrive qd on clic sur un de mes bouton, g mis ca:
        TTreeNode* LCurTreeNode;
        TreeView1->Items->Insert(LCurTreeNode, "test" );
J'ai écrit QUE ca comme code, c du test.
 
Qd je run le projet en DEbug, il me sort la fenetre de l'étatt du CPU ss arret.
et en release "AccessViolation machin"
 
g oublié koi ?

Reply

Marsh Posté le 15-01-2002 à 10:15:13   

Reply

Marsh Posté le 15-01-2002 à 10:17:02    

bhen peut-être qu'il manque un bout entre tes deux lignes:
LCurTreeNode = new TTreeNode;
:D
ajouter un pointeur pointant vers n'importe quoi, le Treeview il doit pas être trop d'accord ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:25:37    

oublie pas de faire le delete aussi :D


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Marsh Posté le 15-01-2002 à 10:26:28    

Et dire qu'il ya encore 4 moi je faisait du java! :cry:
 
Merci comme meme

Reply

Marsh Posté le 15-01-2002 à 10:30:31    

Ouais ca macrhe ca :
 
      TTreeNodes* LTreeNodes;
        LTreeNodes = new TTreeNodes(TreeView1);
        TTreeNode* LCurTreeNode;
        LCurTreeNode = new TTreeNode(LTreeNodes);
        TreeView1->Items->Insert(LCurTreeNode, "test" );
 
De la balle
 
Vous connaissez pas un newsgroup fr sur cppbuilder ?
trouve po :(

Reply

Marsh Posté le 15-01-2002 à 10:31:34    

thecoin a écrit a écrit :

oublie pas de faire le delete aussi :D  




 
:heink:
tu dis ça par habitude du C++ ou pas habitude des VCL de Borland ?
parce qu'en Delphi dans ce genre de trucs faut pas supprimer l'objet, il appartient au treeview et c'est le treeview qui le supprimera. Je suppose que dans C++Builder c'est pareil puisque ce sont les mêmes librairies.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:32:52    

Aurel a écrit a écrit :

Ouais ca macrhe ca :
 
      TTreeNodes* LTreeNodes;
        LTreeNodes = new TTreeNodes(TreeView1);
        TTreeNode* LCurTreeNode;
        LCurTreeNode = new TTreeNode(LTreeNodes);
        TreeView1->Items->Insert(LCurTreeNode, "test" );
 
De la balle




 
il sert à rien ton LTreeNodes ici:

Code :
  1. TTreeNode* LCurTreeNode;
  2.    LCurTreeNode = new TTreeNode(TreeView1.Items);
  3.    TreeView1->Items->Insert(LCurTreeNode, "test" );


 

Aurel a écrit a écrit :

 
Vous connaissez pas un newsgroup fr sur cppbuilder ?
trouve po :(  




 
bah y a ce forum justement :D
puis la majorité de ce qui est bon pour Delphi est bon pour C++Builder. Et des newsgroups ou forums Delphi y en a pas mal je pense.

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:34:13    

antp a écrit a écrit :

 
 
:heink:
tu dis ça par habitude du C++ ou pas habitude des VCL de Borland ?
parce qu'en Delphi dans ce genre de trucs faut pas supprimer l'objet, il appartient au treeview et c'est le treeview qui le supprimera. Je suppose que dans C++Builder c'est pareil puisque ce sont les mêmes librairies.  




 
 :non: sous c++builder, tout les objets que TU crès [faute inside] TU dois les detruire toi meme.


---------------
Si tu regardes ce que le canard mange, tu ne mangeras pas de canard.
Reply

Marsh Posté le 15-01-2002 à 10:36:29    

possible, faut voir si ça plante.
Mais dans certains cas si tu créées des composants appartenant à une form et que tu les supprimes après, ça crashe quand tu détruis la form pcq elle essaie de détruire les dits composants.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:38:54    

correction: ce "insert" me paraissait bizarre, en effet.
le TTreeNode passé en paramètre c'est celui qui précède celui qu'on ajoute.
Donc le code est foireux.
la méthode insert renvoie un pointeur vers le TTreeNode qui a été ajouté.
Je me disais bien qu'il fallait pas en créer "manuellement" et encore moins en supprimer après...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:38:54   

Reply

Marsh Posté le 15-01-2002 à 10:42:02    

antp a écrit a écrit :

 
 
bah y a ce forum justement :D
puis la majorité de ce qui est bon pour Delphi est bon pour C++Builder. Et des newsgroups ou forums Delphi y en a pas mal je pense.  
 
 




 
Tu construis un TTreeNode en fonction de l'Item d'un TTreeView ???
comprends pas la ...

Reply

Marsh Posté le 15-01-2002 à 10:43:52    

Un autre exemple:
 

Code :
  1. TTreeNode *CurNode, *NewNode1, *NewNode2;
  2. CurNode = TreeView1->Items->Add(NULL, "racine 1" );
  3. NewNode1 = TreeView1->Items->Add(CurNode, "racine 2" );
  4. NewNode2 = TreeView1->Items->AddChild(CurNode, "enfant de racine 1" );

 

[edtdd]--Message édité par antp--[/edtdd]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:44:46    

Aurel a écrit a écrit :

 
 
Tu construis un TTreeNode en fonction de l'Item d'un TTreeView ???
comprends pas la ...  




 
TTreeView->Items = TTreeNodes du TTreeView
donc les TTreeNode créés appartiennent à ce TTreeNodes là


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:48:46    

Merci Merci.
Tu vois antp, c ce genre de d'exemple qui manque dans la doc de Cppbuilder et c de ca que je me plaignais hier.
 
A moins que j'ai mal cherché :??:

Reply

Marsh Posté le 15-01-2002 à 10:51:51    

bhen t'as mal cherché pcq pour me souvenir comment ça marchait j'ai regardé l'exemple du "Add" du TTreeNodes dans la doc :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 10:51:54    

et pkoi lorsque je mets tt ce code en commentaire et que je recompile en RELEASE, il me sort la fenetre de l'état du CPU que j'arrive pas a quitter en lancant l'appli???

Reply

Marsh Posté le 15-01-2002 à 12:15:50    

ça foire quand tu mets quel code ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 15-01-2002 à 12:22:54    

antp a écrit a écrit :

ça foire quand tu mets quel code ?  




Bon en fait g pas encore trop compris comment ca macrhe cppbuilder.
En release, DESFOIS, avec n'importe quel code, je fais F7
ca lance la fenetre d'état du cpu, je kill cette fenetre, je refais F7 et ca lance mon aplli
moi y'en a pas comprendre !!!!!

Reply

Marsh Posté le 15-01-2002 à 12:42:07    

heu c'est normal tout ça :D
F7/F8 c'est pour l'exécution en pas à pas en suivant le code C++
En mode Debug donc.
En mode release dans le Exe il n'inclus pas toutes les infos pour le debuggage, il ne sait donc pas à quel ligne de ton source correspond l'endroit où il est, donc il t'affiche le code machine, la seule chose qu'il a.
C'est F9 pour un run normal.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed