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
1 2 3
| if (pStPers->NOM.IsEmpty()){
pStPers->NOM= DataModule1->CDSPers->FieldByName("NOM")->AsString;
} |
je réaffecte un cellule ou cas elle ne serais pas remplie
J'ai réussi ceci avec votre aide avec CB6 update 4:ceci compile
(pStPers->NOM.IsEmpty()) ? DataModule1->CDSPers->FieldByName("NOM")->AsString.c_str():pStPers->NOM.c_str()
c'est pour ceci ceci par la suite click sur un bt
ce bt met la grille en ajout puis valide avec la methode post()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| void __fastcall TFrmAnnu::SPEditPersonClick(TObject *Sender)
{
switch (DataModule1->CDSPers->State)
{
case dsBrowse:{ //edit
// penser a changer image bt
DataModule1->CDSPers->Edit();
break;
}
case dsEdit:{
// penser a changer image bt
// ShowMessage( pStPers->NOM);
DataModule1->CDSPers->SetFields(
ARRAYOFCONST(
(
(void*)NULL, //ID ne pas écrire déjà affecté
pStPers->NOM=(pStPers->NOM.IsEmpty()) ? DataModule1->CDSPers->FieldByName("NOM")->AsString.c_str():pStPers->NOM.c_str() ,
// suite
)
)
);
DataModule1->CDSPers->Post();
DBGMail->SetFocus();
break;
}
default:break;
}
} |
Le seul pb est que normalement après les ":" vu la première syntaxe (avec le if) je n'aurais rien a remettre comment faire ?
autre chose pourquoi cb6 ne supporte pas cette syntaxe dans je met les accolades j'ai un erreur de compilation ?
(<test>) ? { <instructions du si vrai> } : { <instructions du si faux> }
merci encore pour tout
Partager