Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3090 connectés 

 


Dernière réponse
Sujet : [Delphi][C'est encore moi] Vérifier le type des données...
Tetedeiench ok, merci :)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Tetedeiench ok, merci :)
antp pour la fenetre non redimensionnable, si tu veux garder l'icone, borderstyle = bsSingle;
si tu veux pas de l'icone, borderstyle = bsDialog;
 
(j'ai validé trop vide, c pour ca qu'y avait pas la reponse à la 2e question dans le msg precedent)

 

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

Tetedeiench merci :)
 
Pour empecher le resize sans mettre le autoresize a true, c'est comment ? :)
 
(je sais je suis chiant ;) )
antp le back etait dans mon dernier exemple, mais j'avais oublié le delete:
 
if not (Key in ['0'..'9', char(VK_BACK), char(VK_RIGHT), char(VK_LEFT), char(VK_DELETE)])
Tetedeiench ben vi mais euh comment je l'ajoute dans la ligne de antp ?
 
if not (Key in ['0'..'9']) then  
 Key := #0;
 
et aussi : on fait comment pour empecher un utilisateur de resizer une fenetre ( a part autosize = true)
[SDF]Poire backspace #8
Tetedeiench mais il reste un probleme : on ne peux plus faire de BackSpace ni de suppr...
 
C'est quoi le nom en char de ces touches ?
Tetedeiench ok, C moi qui mle suis planté, en effet :)
antp tu l'a mis dans le keydown ou keypress ?
il faut le mettre dans le keypress
le keydown donne la key sous forme d'un Word au lieu d'un Char comme le fait le keypress.
Tetedeiench

antp a écrit a écrit :

tu veux quoi ? empêcher de rentrer autre chose que des chiffres ?
dans le onKeyPress d'un de tes Edit tu mets:
 

Code :
  1. if not (Key in ['0'..'9']) then
  2.   Key := #0;


 
et tu raccordes tous les events "OnKeyPress" des autres Edit à l'event de celui ci (pour pas devoir bêtement copier/coller le code, autant qu'ils appellent tous la même fonction).
 
si tu veux permettre d'entre un "-" par ex tu mets:
 

Code :
  1. if not (Key in ['0'..'9', '-']) then
  2.   Key := #0;


 
si tu veux qu'on ne mette le - qu'en première position:
 

Code :
  1. var
  2.   field: TEdit;
  3. begin
  4.   if Sender is TEdit then
  5.   begin
  6.     field := Sender as TEdit;
  7.     if not (Key in ['0'..'9', char(VK_BACK), char(VK_RIGHT), char(VK_LEFT)]) then
  8.       if (key <> '-') or ((field.Text <> '') and not (field.SelLength = Length(field.Text))) then
  9.         Key := #0;
  10.   end;
  11. end;


 
y a peut-être moyen de faire plus simple...  
 
 




 
Dis, ici, y a un blem de type non ?
 
Incompatible type "Word" and "char" pour la condition du if...
 
C quoi le cast adapté ici ?

[SDF]Poire Pour les pb des int au lieu de StrToInt fait des StrToIntDef
 :hello:
 
edit : oups j'avais pas vu que tu l'avais déjà dit Antp :D

 

[edtdd]--Message édité par [SDF]Poire--[/edtdd]

Tetedeiench antp, T un dieu, décidément, ca marche parfaitement !
 
Merci ENORMEMENT ! :)
antp il trouve peut etre pas le fichier ini...
essaie avec ca:

Code :
  1. with TiniFile.Create(ExtractFilePath(Application.ExeName) + 'base.ini') do

Tetedeiench Merci pour tout antp ;)
 
Sinon, j'ai un probleme avec Inifile aussi...
 
J'ai fait ca :

Code :
  1. procedure Tform15.loadconfig;
  2. begin
  3. with TiniFile.create('base.ini') do
  4. try
  5.      unechaine := ReadString('abcd','taist','pas marche');
  6. finally
  7.         free;
  8. end;


 
et voila le fichier ini

Code :
  1. [abcd]
  2. taist="essai"


 
Et quoi que je fasse, unechaine vaut toujours pasmarche :(
 
tu as une idée ?

antp pour le traitement de l'exception, ce que tu peux faire:
 

Code :
  1. try
  2.   machin := StrToInt(Edit1.Text);
  3. except
  4.   ShowMessage('invalide');
  5. end;


 
ou
 

Code :
  1. try
  2.   machin := StrToInt(Edit1.Text);
  3. except
  4.   machin := 0;
  5. end;


 
ou même
 

Code :
  1. machin := StrToIntDef(Edit1.Text, 0);

antp ha sinon pour un peu éclaircir ton code, y a le "with" :
 

Code :
  1. with Form15.Clients, ajouterClient do
  2. begin
  3.   Append;
  4.   FieldValues['NOM'] := NOM.text;
  5.   FieldValues['PRENOM'] := PRENOM.text;
  6.   FieldValues['DDN'] := DateToStr(DDN.Date);
  7.   FieldValues['DEPARTEMENT_N'] := StrToInt(DEPARTEMENT_N.text);
  8.   ...
  9. end;


 
mais faut être prudent avec ça, pcq si un des deux objets a les mêmes attributs que l'autre, il prendra peut-être le mauvais
par ex si ici ajouterClient a aussi une méthode Append, c'est celle-là qui sera prise et non celle de Form15...

 

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

Tetedeiench Pas bete le coup de ne mettre que des chiffres :)
antp tu veux quoi ? empêcher de rentrer autre chose que des chiffres ?
dans le onKeyPress d'un de tes Edit tu mets:
 

Code :
  1. if not (Key in ['0'..'9']) then
  2.   Key := #0;


 
et tu raccordes tous les events "OnKeyPress" des autres Edit à l'event de celui ci (pour pas devoir bêtement copier/coller le code, autant qu'ils appellent tous la même fonction).
 
si tu veux permettre d'entre un "-" par ex tu mets:
 

Code :
  1. if not (Key in ['0'..'9', '-']) then
  2.   Key := #0;


 
si tu veux qu'on ne mette le - qu'en première position:
 

Code :
  1. var
  2.   field: TEdit;
  3. begin
  4.   if Sender is TEdit then
  5.   begin
  6.     field := Sender as TEdit;
  7.     if not (Key in ['0'..'9', char(VK_BACK), char(VK_RIGHT), char(VK_LEFT)]) then
  8.       if (key <> '-') or ((field.Text <> '') and not (field.SelLength = Length(field.Text))) then
  9.         Key := #0;
  10.   end;
  11. end;


 
y a peut-être moyen de faire plus simple...

 

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

Tetedeiench bonjour c'est encore moi !
 
J'ai un petit probleme : l'utilisateur de mon programme peut entrer des données dans des Tedit, seulement ce type de données doit etre de type integer... vu que je fais un strtoInt derrière...
 
J'ai essayé de faire un traitement d'exception sans succès :(
 
 
voila ce que j'ai fait :

Code :
  1. try
  2.         strtoint(Liaison.text);
  3. except
  4.     on EconvertError do HandleException;
  5. end;


 
Et ca marche pas :(
aussi, y a t'il un moyen plus simple pour tester le contenu des Tedits,s achant que pour cette form j'en ai 30 ...
 
Et que je dois faire un Table.Append / Table.post derrière (C un ajout d'un enregistrement).
 
voila en gros ce que j'ai comme fonction derrière :
 

Code :
  1. Form15.Clients.Append;
  2. Form15.Clients.FieldValues['NOM']:= ajouterClient.NOM.text;
  3. Form15.Clients.FieldValues['PRENOM']:=
  4. ajouterClient.PRENOM.text;
  5. Form15.Clients.FieldValues['DDN']:=Dat
  6. eToStr(ajouterClient.DDN.Date);
  7. Form15.Clients.FieldValues['DEPARTEMENT_N&#
  8. 039;]:=StrToInt(ajouterClient.DEPARTEMENT_N.text);
  9. Form15.Clients.FieldValues['LIEU_N']:=
  10. ajouterClient.LIEU_N.Text;
  11. Form15.Clients.FieldValues['ADRESSE_A'
  12. ]:=ajouterClient.ADRESSE_A.text;
  13. Form15.Clients.FieldValues['CODE_P_A']
  14. :=StrToInt(ajouterClient.CODE_P_A.text);
  15. Form15.Clients.FieldValues['VILLE_A']:
  16. =ajouterClient.VILLE_A.text;
  17. Form15.Clients.FieldValues['TELEPHON_A'
  18. ;
  19. ;]:=ajouterClient.TELEPHON_A.text;
  20. Form15.Clients.FieldValues['ADRESSE_V'
  21. ]:=ajouterClient.ADRESSE_V.text;
  22. Form15.Clients.FieldValues['CODE_P_V']
  23. :=StrToInt(ajouterClient.CODE_P_V.text);
  24. Form15.Clients.FieldValues['VILLE_V']:
  25. =ajouterClient.VILLE_V.text;
  26. Form15.Clients.FieldValues['TELEPHON_V'
  27. ;
  28. ;]:=ajouterClient.TELEPHON_V.text;
  29. Form15.Clients.FieldValues['NIVEAU']:=
  30. ajouterClient.NIVEAU.Itemindex+1;
  31. Form15.Clients.FieldValues['TYP_PLONG'
  32. ]:=ajouterClient.TYP_PLONG.text;
  33. if ajouterClient.INITIATOUI.Checked then Form15.Clients.FieldValues['INITIATEUR']:=TRUE
  34. else Form15.Clients.FieldValues['INITIATEUR'
  35. ;
  36. ;]:=FALSE;
  37. Form15.Clients.FieldValues['NUM_DIPL']
  38. :=StrToInt(ajouterClient.NUM_DIPL.text);
  39. Form15.Clients.FieldValues['DATE_OBT']
  40. :=DateToStr(ajouterClient.DATE_OBT.Date);
  41. Form15.Clients.FieldValues['NOM_CLUB']
  42. :=ajouterClient.NOM_CLUB.text;
  43. Form15.Clients.FieldValues['NUM_CLUB']
  44. :=StrToInt(ajouterClient.NUM_CLUB.text);
  45. Form15.Clients.FieldValues['D_VIS_MED'
  46. ]:=DateToSTR(ajouterClient.D_VIS_MED.Date);
  47. Form15.Clients.FieldValues['NOM_MED']:
  48. =ajouterClient.NOM_MED.text;
  49. Form15.Clients.FieldValues['GR_SANG']:
  50. =ajouterClient.GR_SANG.Items[ajouterClient.GR_SANG
  51. .ItemIndex];
  52. if ajouterClient.ALLERG_ASPOUI.Checked then Form15.Clients.FieldValues['ALLERG_ASP']:=TRUE
  53. else Form15.Clients.FieldValues['ALLERG_ASP'
  54. ;
  55. ;]:=FALSE;
  56. Form15.Clients.FieldValues['TYPE_MED']
  57. :=ajouterClient.TYPE_MED.text;
  58. Form15.Clients.FieldValues['CERTIF_MED'
  59. ;
  60. ;]:=ajouterClient.CERTIF_MED.text;
  61. Form15.Clients.FieldValues['AUTOR_PARE'
  62. ;
  63. ;]:=ajouterClient.AUTOR_PARE.text;
  64. Form15.Clients.FieldValues['COEF_CONF'
  65. ]:=StrToInt(ajouterClient.COEF_CONF.text);
  66. Form15.Clients.FieldValues['INSCR_LIC'
  67. ]:=ajouterClient.INSCR_LIC.text;
  68. Form15.Clients.FieldValues['LIAISON']:
  69. =StrToInt(ajouterClient.LIAISON.text);
  70. Form15.Clients.FieldValues['DATE_ARRIV'
  71. ;
  72. ;]:=DateToStr(ajouterClient.DATE_ARRIV.Date);
  73. Form15.Clients.FieldValues['DATE_DEPART
  74. 9;]:=DateToStr(ajouterClient.DATE_DEPART.Date);
  75. Form15.Clients.post;


 
Je sais c'est lourd mais C pas moi qui ai voulu ca, C le prof :/
 
DOnc vous traiteriez comment le type de données la dedans vous ?

 

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


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)