Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Cyrille Szymanski
On 2004-06-07, Olivier Sarda wrote:
Code: if(MaskCodePostal->Text==""){ // sans success }
Je ne pense pas que le == soit correct ici (à moins que Text soit une classe dont l'opérateur == ait été surchargé). Si Text est un char*, tu peux faire MaskCodePostal->Text[0]==0
-- cns
On 2004-06-07, Olivier Sarda <osarda@nospamfreenospam.fr> wrote:
Code:
if(MaskCodePostal->Text==""){
// sans success
}
Je ne pense pas que le == soit correct ici (à moins que Text soit une
classe dont l'opérateur == ait été surchargé). Si Text est un char*,
tu peux faire MaskCodePostal->Text[0]==0
Code: if(MaskCodePostal->Text==""){ // sans success }
Je ne pense pas que le == soit correct ici (à moins que Text soit une classe dont l'opérateur == ait été surchargé). Si Text est un char*, tu peux faire MaskCodePostal->Text[0]==0
-- cns
Olivier Sarda
Text est tu type AnsiString propre a BCB6 "Cyrille Szymanski" a écrit dans le message de news: 40c491ef$0$25510$
On 2004-06-07, Olivier Sarda wrote: > Code: > if(MaskCodePostal->Text==""){ > // sans success > }
Je ne pense pas que le == soit correct ici (à moins que Text soit une classe dont l'opérateur == ait été surchargé). Si Text est un char*, tu peux faire MaskCodePostal->Text[0]==0
-- cns
Text est tu type AnsiString propre a BCB6
"Cyrille Szymanski" <cns2@cns.invalid> a écrit dans le message de news:
40c491ef$0$25510$626a14ce@news.free.fr...
On 2004-06-07, Olivier Sarda <osarda@nospamfreenospam.fr> wrote:
> Code:
> if(MaskCodePostal->Text==""){
> // sans success
> }
Je ne pense pas que le == soit correct ici (à moins que Text soit une
classe dont l'opérateur == ait été surchargé). Si Text est un char*,
tu peux faire MaskCodePostal->Text[0]==0
Text est tu type AnsiString propre a BCB6 "Cyrille Szymanski" a écrit dans le message de news: 40c491ef$0$25510$
On 2004-06-07, Olivier Sarda wrote: > Code: > if(MaskCodePostal->Text==""){ > // sans success > }
Je ne pense pas que le == soit correct ici (à moins que Text soit une classe dont l'opérateur == ait été surchargé). Si Text est un char*, tu peux faire MaskCodePostal->Text[0]==0
-- cns
Pierre Maurette
"Olivier Sarda" typa:
Bonjour, Ja fais un formulaire de saisie, une question bete comment faire pour savoir si l'utilisateur a saisie quelque chose dans un TMaskEdit
j'ai essaye
Code: if(MaskCodePostal->Text==""){ // sans success }
if(MaskCodePostal->GetTextLen()==0){ // sans succes }
if (!MaskCodePostal->Modified){ //sans succes }
En outre si je je modifie par derriere le formulaire cela plante
bref avez vous un idée ?
Ça semble trivial. Si ce n'est qu'en CB6, une partie du taf est de mettre le code au bon endroit. Je vous suggère un test qui vous propose deux solutions (ce n'est pas du code d'école):
Une fiche Form1, un bouton Button1 et un TMaskEdit MaskEdit1.
Dans Unit1.h : class TForm1 : public TForm { __published: // Composants gérés par l'EDI /* ......................... */ private: // Déclarations de l'utilisateur AnsiString TextInitial; bool MaskEditChanged;
Dans le gestionnaire OnCreate de Form1: void __fastcall TForm1::FormCreate(TObject *Sender) { TextInitial = MaskEdit1->Text; Button1->Caption = "Inchangé"; MaskEditChanged = false; }
Dans le gestionnaire OnClick du bouton: void __fastcall TForm1::Button1Click(TObject *Sender) {
Bonjour,
Ja fais un formulaire de saisie,
une question bete comment faire pour savoir si l'utilisateur a saisie
quelque chose dans un TMaskEdit
j'ai essaye
Code:
if(MaskCodePostal->Text==""){
// sans success
}
if(MaskCodePostal->GetTextLen()==0){
// sans succes
}
if (!MaskCodePostal->Modified){
//sans succes
}
En outre si je je modifie par derriere le formulaire cela plante
bref avez vous un idée ?
Ça semble trivial. Si ce n'est qu'en CB6, une partie du taf est de
mettre le code au bon endroit.
Je vous suggère un test qui vous propose deux solutions (ce n'est pas
du code d'école):
Une fiche Form1, un bouton Button1 et un TMaskEdit MaskEdit1.
Dans Unit1.h :
class TForm1 : public TForm
{
__published: // Composants gérés par l'EDI
/* ......................... */
private: // Déclarations de l'utilisateur
AnsiString TextInitial;
bool MaskEditChanged;
Dans le gestionnaire OnCreate de Form1:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TextInitial = MaskEdit1->Text;
Button1->Caption = "Inchangé";
MaskEditChanged = false;
}
Dans le gestionnaire OnClick du bouton:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Bonjour, Ja fais un formulaire de saisie, une question bete comment faire pour savoir si l'utilisateur a saisie quelque chose dans un TMaskEdit
j'ai essaye
Code: if(MaskCodePostal->Text==""){ // sans success }
if(MaskCodePostal->GetTextLen()==0){ // sans succes }
if (!MaskCodePostal->Modified){ //sans succes }
En outre si je je modifie par derriere le formulaire cela plante
bref avez vous un idée ?
Ça semble trivial. Si ce n'est qu'en CB6, une partie du taf est de mettre le code au bon endroit. Je vous suggère un test qui vous propose deux solutions (ce n'est pas du code d'école):
Une fiche Form1, un bouton Button1 et un TMaskEdit MaskEdit1.
Dans Unit1.h : class TForm1 : public TForm { __published: // Composants gérés par l'EDI /* ......................... */ private: // Déclarations de l'utilisateur AnsiString TextInitial; bool MaskEditChanged;
Dans le gestionnaire OnCreate de Form1: void __fastcall TForm1::FormCreate(TObject *Sender) { TextInitial = MaskEdit1->Text; Button1->Caption = "Inchangé"; MaskEditChanged = false; }
Dans le gestionnaire OnClick du bouton: void __fastcall TForm1::Button1Click(TObject *Sender) {
Dans le gestionnaire OnChange du MaskEdit: void __fastcall TForm1::MaskEdit1Change(TObject *Sender) { MaskEditChanged = (TextInitial == MaskEdit1->Text); /* Régair au changement */ }
La solution du bouton et celle du OnChange sont indépendantes. -- Pïerre
Olivier Sarda
Je te remercie cependant si je saisie un fois ou que je saissise puis que j'efface j'ai toujours la meme ereur va voir a cette adresse pour plus d'explication de mon probleme
"Pierre Maurette" a écrit dans le message de news:
"Olivier Sarda" typa:
>Bonjour, >Ja fais un formulaire de saisie, >une question bete comment faire pour savoir si l'utilisateur a saisie >quelque chose dans un TMaskEdit > >j'ai essaye > > Code: > if(MaskCodePostal->Text==""){ > // sans success > } > > if(MaskCodePostal->GetTextLen()==0){ > // sans succes > } > > if (!MaskCodePostal->Modified){ > //sans succes > } > > >En outre si je je modifie par derriere le formulaire cela plante > >bref avez vous un idée ? Ça semble trivial. Si ce n'est qu'en CB6, une partie du taf est de mettre le code au bon endroit. Je vous suggère un test qui vous propose deux solutions (ce n'est pas du code d'école):
Une fiche Form1, un bouton Button1 et un TMaskEdit MaskEdit1.
Dans Unit1.h : class TForm1 : public TForm { __published: // Composants gérés par l'EDI /* ......................... */ private: // Déclarations de l'utilisateur AnsiString TextInitial; bool MaskEditChanged;
Dans le gestionnaire OnCreate de Form1: void __fastcall TForm1::FormCreate(TObject *Sender) { TextInitial = MaskEdit1->Text; Button1->Caption = "Inchangé"; MaskEditChanged = false; }
Dans le gestionnaire OnClick du bouton: void __fastcall TForm1::Button1Click(TObject *Sender) {
Dans le gestionnaire OnChange du MaskEdit: void __fastcall TForm1::MaskEdit1Change(TObject *Sender) { MaskEditChanged = (TextInitial == MaskEdit1->Text); /* Régair au changement */ }
La solution du bouton et celle du OnChange sont indépendantes. -- Pïerre
Je te remercie cependant si je saisie un fois ou
que je saissise puis que j'efface j'ai toujours la meme ereur
va voir a cette adresse pour plus d'explication de mon probleme
>Bonjour,
>Ja fais un formulaire de saisie,
>une question bete comment faire pour savoir si l'utilisateur a saisie
>quelque chose dans un TMaskEdit
>
>j'ai essaye
>
> Code:
> if(MaskCodePostal->Text==""){
> // sans success
> }
>
> if(MaskCodePostal->GetTextLen()==0){
> // sans succes
> }
>
> if (!MaskCodePostal->Modified){
> //sans succes
> }
>
>
>En outre si je je modifie par derriere le formulaire cela plante
>
>bref avez vous un idée ?
Ça semble trivial. Si ce n'est qu'en CB6, une partie du taf est de
mettre le code au bon endroit.
Je vous suggère un test qui vous propose deux solutions (ce n'est pas
du code d'école):
Une fiche Form1, un bouton Button1 et un TMaskEdit MaskEdit1.
Dans Unit1.h :
class TForm1 : public TForm
{
__published: // Composants gérés par l'EDI
/* ......................... */
private: // Déclarations de l'utilisateur
AnsiString TextInitial;
bool MaskEditChanged;
Dans le gestionnaire OnCreate de Form1:
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TextInitial = MaskEdit1->Text;
Button1->Caption = "Inchangé";
MaskEditChanged = false;
}
Dans le gestionnaire OnClick du bouton:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Je te remercie cependant si je saisie un fois ou que je saissise puis que j'efface j'ai toujours la meme ereur va voir a cette adresse pour plus d'explication de mon probleme
"Pierre Maurette" a écrit dans le message de news:
"Olivier Sarda" typa:
>Bonjour, >Ja fais un formulaire de saisie, >une question bete comment faire pour savoir si l'utilisateur a saisie >quelque chose dans un TMaskEdit > >j'ai essaye > > Code: > if(MaskCodePostal->Text==""){ > // sans success > } > > if(MaskCodePostal->GetTextLen()==0){ > // sans succes > } > > if (!MaskCodePostal->Modified){ > //sans succes > } > > >En outre si je je modifie par derriere le formulaire cela plante > >bref avez vous un idée ? Ça semble trivial. Si ce n'est qu'en CB6, une partie du taf est de mettre le code au bon endroit. Je vous suggère un test qui vous propose deux solutions (ce n'est pas du code d'école):
Une fiche Form1, un bouton Button1 et un TMaskEdit MaskEdit1.
Dans Unit1.h : class TForm1 : public TForm { __published: // Composants gérés par l'EDI /* ......................... */ private: // Déclarations de l'utilisateur AnsiString TextInitial; bool MaskEditChanged;
Dans le gestionnaire OnCreate de Form1: void __fastcall TForm1::FormCreate(TObject *Sender) { TextInitial = MaskEdit1->Text; Button1->Caption = "Inchangé"; MaskEditChanged = false; }
Dans le gestionnaire OnClick du bouton: void __fastcall TForm1::Button1Click(TObject *Sender) {
Dans le gestionnaire OnChange du MaskEdit: void __fastcall TForm1::MaskEdit1Change(TObject *Sender) { MaskEditChanged = (TextInitial == MaskEdit1->Text); /* Régair au changement */ }
La solution du bouton et celle du OnChange sont indépendantes. -- Pïerre
BlueR
Bonjour
Tu as un problème avec les AnsiString ? Je viens de tester ceci if (MaskEdit1->Text == "") ShowMessage ("le TMaskEdit est vide"); ça marche parfaitement chez moi.
Mais si tu veux savoir s'il y a qq chose dedans, il faut mettre if (MaskEdit1->Text != "")
-- BlueR
Bonjour
Tu as un problème avec les AnsiString ?
Je viens de tester ceci
if (MaskEdit1->Text == "") ShowMessage ("le TMaskEdit est vide");
ça marche parfaitement chez moi.
Mais si tu veux savoir s'il y a qq chose dedans, il faut mettre
if (MaskEdit1->Text != "")
Tu as un problème avec les AnsiString ? Je viens de tester ceci if (MaskEdit1->Text == "") ShowMessage ("le TMaskEdit est vide"); ça marche parfaitement chez moi.
Mais si tu veux savoir s'il y a qq chose dedans, il faut mettre if (MaskEdit1->Text != "")
-- BlueR
Pierre Maurette
"Olivier Sarda" typa:
Je te remercie cependant si je saisie un fois ou que je saissise puis que j'efface j'ai toujours la meme ereur va voir a cette adresse pour plus d'explication de mon probleme
Ce n'est pas à proprement parler une erreur. C'est le fonctionnement normal de TMaskEdit, qui génère une EDBEditError (voir Help) en cas d'incompatibilité avec le masque. Il me semble que la vérification est faite à la perte de focus (OnExit). La gestion par défaut de cette exception explique dans une box que la saisie est incorrecte et que ESC permet de réinitialiser la boîte de saisie. Important: pour juger si ce comportement vous convient, il faut impérativement tester votre programme en dehors de l'EDI (double clic sur l'exe) et peut-être est-ce mieux en release ("Version finale" dans Projet/Options/Compilateur).
Personnellement, je préfère généralement un TEdit et du code dans OnChange et OnExit (par exemple) à un TMaskEdit. Pour piger le fonctionnement de TMaskEdit, vous pouvez faire ce genre de test: void __fastcall TForm1::Button1Click(TObject *Sender) { Edit1->Text = MaskEdit1->Text; Edit2->Text = MaskEdit1->EditText; } Pensez que vous pouvez initialiser TMaskEdit::Text à une valeur convenable, ce qui peut faciliter la saisie. Je n'ai pas trouvé de moyen d'empêcher l'utilisateur d'effacer un caractère (un chiffre obligatoire par exemple). On doit pouvoir le faire dans le OnKeyPress ou le OnChange, mais ça va en contradiction avec une règle qui voudrait qu'on évite de surcharger le comportement des composants complexes. Comme souvent, il y a un problème dans l'aide. Pour la chaine de format, faire Aide/Index/TEditMask (et non TMaskEdit).
Mais bon, pour un code postal, un simple TEdit, une vérification "que des chiffres et longueur <= 5" dans le OnChange, plus une vérification finale à la validation du formulaire, roule raoul... -- Pierre
Je te remercie cependant si je saisie un fois ou
que je saissise puis que j'efface j'ai toujours la meme ereur
va voir a cette adresse pour plus d'explication de mon probleme
Ce n'est pas à proprement parler une erreur. C'est le fonctionnement
normal de TMaskEdit, qui génère une EDBEditError (voir Help) en cas
d'incompatibilité avec le masque. Il me semble que la vérification est
faite à la perte de focus (OnExit). La gestion par défaut de cette
exception explique dans une box que la saisie est incorrecte et que
ESC permet de réinitialiser la boîte de saisie.
Important: pour juger si ce comportement vous convient, il faut
impérativement tester votre programme en dehors de l'EDI (double clic
sur l'exe) et peut-être est-ce mieux en release ("Version finale" dans
Projet/Options/Compilateur).
Personnellement, je préfère généralement un TEdit et du code dans
OnChange et OnExit (par exemple) à un TMaskEdit.
Pour piger le fonctionnement de TMaskEdit, vous pouvez faire ce genre
de test:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text = MaskEdit1->Text;
Edit2->Text = MaskEdit1->EditText;
}
Pensez que vous pouvez initialiser TMaskEdit::Text à une valeur
convenable, ce qui peut faciliter la saisie. Je n'ai pas trouvé de
moyen d'empêcher l'utilisateur d'effacer un caractère (un chiffre
obligatoire par exemple). On doit pouvoir le faire dans le OnKeyPress
ou le OnChange, mais ça va en contradiction avec une règle qui
voudrait qu'on évite de surcharger le comportement des composants
complexes.
Comme souvent, il y a un problème dans l'aide. Pour la chaine de
format, faire Aide/Index/TEditMask (et non TMaskEdit).
Mais bon, pour un code postal, un simple TEdit, une vérification "que
des chiffres et longueur <= 5" dans le OnChange, plus une vérification
finale à la validation du formulaire, roule raoul...
--
Pierre
Je te remercie cependant si je saisie un fois ou que je saissise puis que j'efface j'ai toujours la meme ereur va voir a cette adresse pour plus d'explication de mon probleme
Ce n'est pas à proprement parler une erreur. C'est le fonctionnement normal de TMaskEdit, qui génère une EDBEditError (voir Help) en cas d'incompatibilité avec le masque. Il me semble que la vérification est faite à la perte de focus (OnExit). La gestion par défaut de cette exception explique dans une box que la saisie est incorrecte et que ESC permet de réinitialiser la boîte de saisie. Important: pour juger si ce comportement vous convient, il faut impérativement tester votre programme en dehors de l'EDI (double clic sur l'exe) et peut-être est-ce mieux en release ("Version finale" dans Projet/Options/Compilateur).
Personnellement, je préfère généralement un TEdit et du code dans OnChange et OnExit (par exemple) à un TMaskEdit. Pour piger le fonctionnement de TMaskEdit, vous pouvez faire ce genre de test: void __fastcall TForm1::Button1Click(TObject *Sender) { Edit1->Text = MaskEdit1->Text; Edit2->Text = MaskEdit1->EditText; } Pensez que vous pouvez initialiser TMaskEdit::Text à une valeur convenable, ce qui peut faciliter la saisie. Je n'ai pas trouvé de moyen d'empêcher l'utilisateur d'effacer un caractère (un chiffre obligatoire par exemple). On doit pouvoir le faire dans le OnKeyPress ou le OnChange, mais ça va en contradiction avec une règle qui voudrait qu'on évite de surcharger le comportement des composants complexes. Comme souvent, il y a un problème dans l'aide. Pour la chaine de format, faire Aide/Index/TEditMask (et non TMaskEdit).
Mais bon, pour un code postal, un simple TEdit, une vérification "que des chiffres et longueur <= 5" dans le OnChange, plus une vérification finale à la validation du formulaire, roule raoul... -- Pierre