Accueil > Forum > > > > tri listview ( debug - release )
tri listview ( debug - release )
mardi 27 juillet 2004 à 14:54:32 |
tri listview ( debug - release )

3psilon
|
Bonjour a tous, J'explique mon probleme : A titre pédagogique, j'ai crée une application (sans mfc avec VC 6), ou j'ai crée des listviews. Je rempli les listviews de données directement sans les enregistrer dans des structures, je sais ce n'est pas une bonne méthode mais cette application à pour but de m'apprendre la prog win32. J'ai alors implémenté le tri en utilisant la macro 'ListView_SortItems'. En mode debug cela fonctionne tres bien sur toutes les colonnes. Passant en release, je m'apercois que mon tri n'est correct que sur la premiere colonne. Apres avoir regarder sur le net et sur ce forum, en autre la source de Vecchio56, je me rend compte d'une chose tres importante qui est le parametre LPARAM de la structure LVITEM qui a pour but, si j'ai bien compris, de pointer sur la donnée désirée. Ce pointeur sera ensuite utilisé dans le cadre du tri orchestré par la macro. Mes questions sont les suivantes : - On est donc obligé, si l'on désire trier la listview, de sauvegarder toutes les données ds des structures adaptées ? - Alors en debug le compilo se charge de créer les structures pour le tri ? - Est-ce que j'ai bien compris ? Merci pour votre aide +++
|
|
mardi 27 juillet 2004 à 17:00:06 |
Re : tri listview ( debug - release )

cosmobob
|
'Est-ce que j'ai bien compris ?' -> non :) en debug le compilo ne cree pas de structures. au moment ou tu inseres un item avec lvm_insertitem, tu remplis le champ lparam de l'item en question. la fonction de comparaison utilisée qd tu fais un sortitem va prendre en parametres les lparam des items qu'elle est en train d'ordonner. le lparam peut correspondre a un pointeur, un entier, ce que tu veux... c'est ta fonction de comparaison qui va l'utiliser. si tu ne veux pas sauvegarder les donnees ds des structures, utilises lvm_sortitemsex. les lparam qui seront passés dans ta fonction de comparaison seront alors les index des items ds la liste view (et tu peux alors tout avoir en faisant des getitem...) va voir la : msdn LVM_SORTITEMSEXla seule chose que fait la version debug, c'est inserer les infos de debogage ds l'exe (pour pouvoir suivre son execution pas a pas) si ca marche en debug et pas en release, c'est du a une mauvaise utilisation de la mémoire... ca ne fait pas les memes effets car en debug ya des infos de debogage un peu partout. voila, si ca a pu t'eclairer... a+ ;)
|
|
mardi 27 juillet 2004 à 17:03:03 |
Re : tri listview ( debug - release )
|
mardi 27 juillet 2004 à 17:06:32 |
Re : tri listview ( debug - release )

cosmobob
|
tiens j'ai une question. l'exe que t'avais mis sans source, et qui a été retiré, il était de qui ? vu que tu dis que t'es en train d'apprendre comment tout ca marche, donc c'est pas toi qui l'avais fait. t'avais chopé la source, et la tu le refais toi meme pour piger, ou ... ?
|
|
mardi 27 juillet 2004 à 18:25:06 |
Re : tri listview ( debug - release )

3psilon
|
Decidement c toi qui m'aide a chaque fois ;)
Merci pour l'info, je vais tester avec LVM_SORTITEMSEX.
Si tu veux voir la difference sur le tri des listviews , entre le debug et la release, j'ai fais la source suivante :
http://www.cppfrance.com/code.aspx?id=24766
Justement cette source fais partie de mon soft qui lui est un peu plus gros. Et si si, ce soft est entierement de moi, je travaille dessus depuis qq temps, et en fait des que j'apprends un nouveau truc qui peut lui servir alors je l'implemente.
Mais en fait, je débute avec VC 6 depuis qq temps, et mon erreur a été de travailler au fil des versions que en mode debug, et maintenant je me retrouve avec des erreurs en release. Bon les plus grosses erreurs sont corrigées, ben en fait il ne reste plus que le tri des listviews à corriger.
Merci encore
+++
Bye
3psilon
|
|
mardi 27 juillet 2004 à 18:30:14 |
Re : tri listview ( debug - release )

cosmobob
|
ben alors tu peux ss doute répondre a ma question! comment on fait pr changer individuellement la couleur d'une ligne donnée d'une listview ? jme demande a+ ;)
|
|
mardi 27 juillet 2004 à 18:46:33 |
Re : tri listview ( debug - release )

3psilon
|
Il faut sous classer l'affichage des items de la listview. Dans le NOTIFY, tu spécifies : .... case IDC_LIST: { LPNMLISTVIEW pnm; pnm = (LPNMLISTVIEW)lParam; if(((LPNMHDR)lParam)->code == NM_CUSTOMDRAW) { SetWindowLong(hDlg, DWL_MSGRESULT,(LONG)ProcessCustomDrawNet(lParam)); return TRUE; } ....
|
Ou ProcessCustomDrawNet sera ta fonction qui affichera les items. Dans mon exemple, suivant le texte contenu d'un des subitems la couleur du texte sera differente.
LRESULT ProcessCustomDrawNet (LPARAM lParam) { LPNMLVCUSTOMDRAW lplvcd = (LPNMLVCUSTOMDRAW)lParam; switch(lplvcd->nmcd.dwDrawStage) { case CDDS_PREPAINT : { // Avant le commencement du cycle d'affichage // Notification pour chaque item de la liste return CDRF_NOTIFYITEMDRAW; } case CDDS_ITEMPREPAINT: // Avant Affichage de l'item Parametrage de la couleur du texte de l'item { char szTemp[96]; LVITEM LvItem; LvItem.iSubItem = 5; LvItem.pszText = szTemp; LvItem.cchTextMax = 96; SendMessage(hList,LVM_GETITEMTEXT, lplvcd->nmcd.dwItemSpec,(LPARAM)&LvItem); // recupère le texte if (strcmp(szTemp,"CLOSE_WAIT")==0){ lplvcd->clrText = RGB(255,0,0); return CDRF_NOTIFYITEMDRAW; } if (strcmp(szTemp,"TIME_WAIT")==0){ lplvcd->clrText = RGB(255,0,0); return CDRF_NOTIFYITEMDRAW; } if (strcmp(szTemp,"FIN_WAIT1")==0){ lplvcd->clrText = RGB(255,0,0); return CDRF_NOTIFYITEMDRAW; } if (strcmp(szTemp,"FIN_WAIT2")==0){ lplvcd->clrText = RGB(255,0,0); return CDRF_NOTIFYITEMDRAW; } if (strcmp(szTemp,"CLOSING")==0){ lplvcd->clrText = RGB(255,0,0); return CDRF_NOTIFYITEMDRAW; } if (strcmp(szTemp,"ESTABLISHED")==0){ lplvcd->clrText = RGB(20,150,0); return CDRF_NOTIFYITEMDRAW; } if (strcmp(szTemp,"LISTENING")==0){ lplvcd->clrText = RGB(80,80,250); return CDRF_NOTIFYITEMDRAW; }
lplvcd->clrText = coltx;
break; }
} return CDRF_DODEFAULT; }
|
Dans ce bout de code, j'affiche les connexions réseaux en cours et suivant l'état de la connexion la couleur du texte variera. +++
|
|
mardi 27 juillet 2004 à 18:50:18 |
Re : tri listview ( debug - release )

cosmobob
|
ok merci bcp bcp, jvais essayer ca ! j'ai trouvé ton msn ds le exe du premier Inxppect.exe, ca te gene si jtajoute ds mes contacts? a+ ;)
|
|
mardi 27 juillet 2004 à 18:57:46 |
Re : tri listview ( debug - release )

JCDjcd
|
En debug le compilo fait des operations en plus, comme par exemple remplir les mallocs de 0xfd, ect ... Donc si ton programme se comporte differemment selon debug/release, il faut regarder du cote des operation sippementaires. Moi aussi ca m'ai arrivé se genre de desagrement pour les bitmaps, et il est vrai que c'est vraiment embetant, surtout quand on a l'habitude comme moi de travailler toujours en debug ....
|
|
mardi 27 juillet 2004 à 19:04:45 |
Re : tri listview ( debug - release )

3psilon
|
ok cosmobob ;)
En passant, si qq1 a un lien qui explique ce que fais concretement VC quand il passe du debug a release cela m'interesse :) genre comme tu dis JCDjcd , remplir les malloc .. etc .. etc
Merci
|
|
Cette discussion est classée dans : listview, tri, debug, release, structures
Répondre à ce message
Sujets en rapport avec ce message
debug vs release [ par coockiesch ]
Hello!J'aimerais savoir les différences entre la compilation release et la compilation debug...Quels sont leurs avantages et leurs inconvéniants.Merci
Debug & Release [ par hilairenicolas ]
Bonjour à tous,j'ai un probleme étrange. Je developpe un .ocx qui n'a pas le meme comportement quand je le compile en mode debug ou en mode release. E
assertion failed! + debug VS release [ par sro ]
Bonjour,j'ai un ptit prgme cree a partir d'un "devolpement toolkit" pour webcam logitech. J'ai deja fait marche ce programme sans pb, mais maintenant
Debug - Release - Probleme à l'execution... [ par Matt67 ]
Bonsoir,Voici un morceau de code qui recupere le chemin de l'application et change l'extention en .ini (Dites moi si mon code est bien 'codé')LPTSTR l
new - debug / release [ par magic_Nono ]
PB du new.... alors que ça passe avec des alloc classiquesOn me conceil d'utiliser des new plutot que des malloc en C++très bien maisvoici un petit mo
run debug != run release [ par Galmiza ]
Salut,mon programme ne tourne pas de la meme facon quand je le compile en release ou en debug. C'est une sorte de moteur 3D, la difference est visible
mode debug / mode release avec Visual C++ [ par franckydeluka ]
Bonjour à tous,je viens de créer une dll en mode débug et quand je l'appelle à partir d'un autre programme ça marche nickel sans problème.ensuite je l
Visual C++ 6.0: générer une version de debug/release [ par oh81 ]
Bonjour, J'ai installé visual C++ sur mon Pc depuis ... J'ai remarqué que quand je remplace "win32 debug" par "win32 release" ou l'inverse dans "Pro
comment faire un #if "debug/release mode" [ par nord666 ]
Salut à tous et à toutes,Je me demande si c'est possible de pouvoir faire quelque chose du genre(j'utilise visual studio 8.0):#if (le mode dans lequel
PB Release/debug [ par magic_Nono ]
BjJe viens de constater un grave problème ds un soft que je viens de terminer (VC6)en version debug, nickel tt OKen version release, un évenement fait
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|