virgule -> point [résolu]

virgule -> point [résolu] - Delphi/Pascal - Programmation

Marsh Posté le 17-06-2003 à 13:02:21    

Voilà je cherche à pouvoir utiliser le "." du pavé numérique à la place de la virgule sans me faire jeter par le compilo.
Je peut toujours remplacer le "." par une virgule après saisie mais il existe peut être une meilleure soluce, non ?
 
ps: je n'ai rien trouvé dans l'aide de delphi, mais ça ne prouve rien. :d
 
Merci d'avance. :)


Message édité par amsterdam le 17-06-2003 à 15:05:34
Reply

Marsh Posté le 17-06-2003 à 13:02:21   

Reply

Marsh Posté le 17-06-2003 à 13:14:47    

Comprends pas.
Tu veux faire quoi exactement? Que dans ton appli quand tu tapes'.' ca affiche ','?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 17-06-2003 à 13:18:57    

A l'heure actuelle si au pavé num je saisi par ex: 12.4 le compilo me jette alors que si je tape 12,4 pas de prob.

Reply

Marsh Posté le 17-06-2003 à 13:22:23    

amsterdam a écrit :

A l'heure actuelle si au pavé num je saisi par ex: 12.4 le compilo me jette alors que si je tape 12,4 pas de prob.


Ma première idée serait de faire la modif tout seul après coup...mais je connais quasiment pas Delphi... [:ddr555]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 17-06-2003 à 13:26:17    

Si ma mémoire est bonne en VB il existe la fonction replace, par contre pour DELPHI je n'ai pas trouvé.  :(  
 
Sinon tant pis je vais le faire à la main mais c'est plus long(lourd).

Reply

Marsh Posté le 17-06-2003 à 13:57:20    

J'essaie ceci:
 


pospoint := strpos(s, txtfrancs);


 
Et le compilo me sort:


[Erreur] Unit1.pas(37): Types incompatibles : 'TEdit' et 'PChar'


 
QQun voit il ou est mon erreur ?

Reply

Marsh Posté le 17-06-2003 à 13:59:28    

amsterdam a écrit :

J'essaie ceci:
 


pospoint := strpos(s, txtfrancs);


 
Et le compilo me sort:


[Erreur] Unit1.pas(37): Types incompatibles : 'TEdit' et 'PChar'


 
QQun voit il ou est mon erreur ?


Au hasard, tu ne fournis ps le bon type à la fction strpos?
Ou alors le résultat de strpos n'est du même type que pospoint...
Ca manque de précisions ton code là...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 17-06-2003 à 14:06:43    

Je me doute bien que c'est un problème de type.
 
Apparement le strpos renvoit un PChar qui est utilisé pour les chaines à 0 terminal alors que je travaille sur des chaines "normales".
Mais je ne trouve rien pour remplacer strpos. :/


Message édité par amsterdam le 17-06-2003 à 14:07:00
Reply

Marsh Posté le 17-06-2003 à 14:22:59    

Je vient de trouver la fonction stringreplace mais je n'y arrive toujours pas.
 


euros, francs, resultat : real;
 pospoint : integer;
 s : string ;
 
 s := '.';
 pospoint := stringreplace(s, txtfrancs);



[Erreur] Unit1.pas(37): Types incompatibles : 'String' et 'TEdit'


 
Pas beaucoup plus avancé quoi.  :cry:

Reply

Marsh Posté le 17-06-2003 à 14:35:22    

regarde dans l'aide en ligne du coté de DecimalSeparator
 
sinon pour ton problème c normal puisque tu passes un TEdit fait donc txtfrancs.text

Reply

Marsh Posté le 17-06-2003 à 14:35:22   

Reply

Marsh Posté le 17-06-2003 à 14:37:47    

amsterdam a écrit :


Mais je ne trouve rien pour remplacer strpos. :/


 
Pos ? :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-06-2003 à 14:38:41    

Et une erreur débile une. :d
Bon maintenant il me met:
 


[Erreur] Unit1.pas(38): Pas assez de paramètres originaux


 
Sinon je vait voir pour décimal bidule. :)

Reply

Marsh Posté le 17-06-2003 à 14:39:05    

Si c'est pour les FloatToStr et StrToFloat, je vois pas l'intérêt de forcer le point : Delphi utilise le symbole défini dans les options régionales de Windows.
Perso ça me gonfle les applications qui veulent des "." plutôt que la "," comme je l'ai définie, parce que sur mon clavier sur le pavé numérique j'ai une "," ...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-06-2003 à 14:39:38    

amsterdam a écrit :

Et une erreur débile une. :d
Bon maintenant il me met:
 


[Erreur] Unit1.pas(38): Pas assez de paramètres originaux



 
dest := StringReplace(source, old, new, [rfReplaceAll]);


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-06-2003 à 14:47:07    

Donc si je comprend bien je suis censé faire ceci:


pospoint := stringreplace(txtfrancs.text, '.', ',');


Là il me sort:


[Erreur] Unit1.pas(38): Pas assez de paramètres originaux


:/

Reply

Marsh Posté le 17-06-2003 à 14:51:51    

il manque le 4e param : [rfReplaceAll]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-06-2003 à 14:56:21    


Si je le met j'ai droit à:


[Erreur] Unit1.pas(38): Types incompatibles : 'Integer' et 'String'


Message édité par amsterdam le 17-06-2003 à 14:56:41
Reply

Marsh Posté le 17-06-2003 à 15:00:44    

C'est bon ça passe, il suffisait de changer le type de la variable pospoint.

Reply

Marsh Posté le 17-06-2003 à 15:04:19    

C'est bon ça fonctionne.  :bounce:  
 
Mais je vous préviens vous n'avez pas fini de me supporter.  :lol:
 
Merci aux participants.  :hello:


Message édité par amsterdam le 17-06-2003 à 15:04:54
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed