|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Membre du Club
![]() Inscription : juin 2002 Messages : 206 ![]() |
Bonsoir,
j'ai un structure défini comme ceci Code :
Code :
(pStPers->NOM==NULL)? DataModule1->CDSPers->FieldByName("NOM")->AsString:" "; Code :
(pStPers->NOM=="")? DataModule1->CDSPers->FieldByName("NOM")->AsString:" "; CDSPers est un TClientDataSet J'ai un erreur de compilation Citation:
pourtant pStPers->NOM est de type AnsiString et ceci aussi DataModule1->CDSPers->FieldByName("NOM")->AsString ou est l'erreur ? merci encore d'avance de votre aide ps : je voudrais utiliser cette autre syntaxe du if cela me serait utilise ailleurs
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3 |
|||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 261 ![]() |
Evite la comparaison à NULL pour un AnsiString, utilise IsEmpty() ou la comparaison à EmptyStr
Code :
(pStPers->NOM.IsEmpty()) ? DataModule1->CDSPers->FieldByName("NOM")->AsString : " "; Je ne comprend pas bien ton code qui devrait plutôt être : Code :
Edit1->Text = (pStPers->NOM.IsEmpty()) ? DataModule1->CDSPers->FieldByName("NOM")->AsString : " "; Code :
pStPers->NOM = DataModule1->CDSPers->FieldByName("NOM")->IsNull ? "" : DataModule1->CDSPers->FieldByName("NOM")->AsString AsString est normalement String\AnsiString Tu as aussi AsWideString (à partir de D7, je crois) Tu es en bien en D6 pas en version Unicode (2009..XE3) " " serait D6-Ansi et DXE-Ansi L" " serait D6-Wide et DXE-Wide AsString serait D6-Ansi et DXE-Wide Pense aussi a EmptyStr correspondant à "" (effectivement c'est NULL) pense que l'on peut déclarer sans typedef en C++, même syntaxe qu'une classe Code :
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
||
|
|
00
|
|
|
#3 | ||||
|
Membre du Club
![]() Inscription : juin 2002 Messages : 206 ![]() |
Bonjour
Je capture ce que saisie l’utilisateur sur l’événement de la DBGRID onkeypress et l'affecte dans la structure.Cette dbgrid est en lecture/écriture lorsque je fais un modif je perd toujours la dernière valeur Je voulais en fais écrire ceci mais avec l'autre syntaxe Code :
J'ai réussi ceci avec votre aide avec CB6 update 4:ceci compile Code :
(pStPers->NOM.IsEmpty()) ? DataModule1->CDSPers->FieldByName("NOM")->AsString.c_str():pStPers->NOM.c_str() ce bt met la grille en ajout puis valide avec la methode post() Code :
autre chose pourquoi cb6 ne supporte pas cette syntaxe dans je met les accolades j'ai un erreur de compilation ? Code :
(<test>) ? { <instructions du si vrai> } : { <instructions du si faux> }
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3 |
||||
|
|
00
|
|
|
#4 | ||||||
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 261 ![]() |
ARRAYOFCONST de D6 si il est comme celui de 2007, il execute deux fois la séquence, une fois pour les valeurs, une seconde fois pour la taille du tableau
ARRAYOFCONST a été modifié en XE pour optimiser cela ! SetFields, je ne connais pas du tout cette fonction, vu ton code, je ne suis pas convaincu que cela soit plus performant et en plus d'être franchement difficile à lire ! J'ai tendance à découper mon code Code :
Code :
A quoi sert le OnKeyPress ? Pourquoi ne pas plutôt travailler dans le OnBeforePost du TDataSet ou le OnValidate du TField pour nettoyer les données si nécessaires ! A quoi ta structure, l'utilises-tu ailleurs ? Code :
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
||||||
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() Inscription : juin 2002 Messages : 206 ![]() |
Bonjour,
difficile de reprendre le C++ après une longue maladie.... Je me sert de cette structure car chaque fois que je modifie les données. je perd toujours la dernière valeur. C'est pour cela que je capture ceci sur l’événement OnKeyPress Question bete je n'arrive plus a initialiser ma structure au lieu de faire ceci je voudrais faire ceci : Code :
encore merci je vais vraiment regarder ce que tu as dit
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3 |
||
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 261 ![]() |
N'est-ce pas réservé au constante ?
Je t'avoue que ce genre de chose sont confus en C++ pour moi, je suis Delphiste, j'utilise plutôt des classes basés sur des TObject avec des constructeurs, si je fais une struct, il m'arrive de faire aussi un constructeur, ou alors ZeroMemory si la struct ne contient pas de classe
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
|
|
00
|
|
|
#7 | ||
![]() ![]() Responsable de projet fonctionnel Inscription : mars 2002 Messages : 633 ![]() |
Salut
Concernant ta structure en C++ on préfère travailler avec des class la syntaxe sera donc la suivante Code :
__________________
A lire : Les règles du forum |
||
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : juin 2002 Messages : 206 ![]() |
ok ,je vous remercie a tous les deux
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3 |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : juin 2002 Messages : 206 ![]() |
Effectivement il faut que je regroupe mon code sur BeforePost()
c'est plus gérable encore merci toutes tes remarque du coup de code a refondre.... J'aurais sans doutes d'autres questions... encore merci
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3 |
|
|
00
|
|
|
#10 | |||
|
Membre du Club
![]() Inscription : juin 2002 Messages : 206 ![]() |
Citation:
est ce mieux d’écrire ceci ? Code :
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3 |
|||
|
|
00
|
|
|
#11 | |
![]() ![]() Responsable de projet fonctionnel Inscription : mars 2002 Messages : 633 ![]() |
Salut
a mon humble avis c'est bonnet Blanc blanc Bonnet voir aide Citation:
__________________
A lire : Les règles du forum |
|
|
|
00
|
|
|
#12 | |
|
Membre du Club
![]() Inscription : juin 2002 Messages : 206 ![]() |
Bonjour,
Citation:
Si j'ai un objet *pF de type TField ou implémenter la methode OnValidate() ? J'ai fait quelque recherche , j'ai vu dans le DBGrid le pb est qu'il n'y pas d’événement OnValidate Merci DjmSoftware, je te remercie je pensais que le remarque faite par ShaiLeTroll ce serait mieux d'utiliser ceci
__________________
Outils utilisés : FireBird 2.1 - IbExert Free - C++ Builder 6 Pro Update 4- Windows Xp pro Sp3 |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com