laksdjfhljka
Messages postés1Date d'inscriptionsamedi 12 juillet 2003StatutMembreDernière intervention10 janvier 2008
-
10 janv. 2008 à 01:10
Caribensila
Messages postés2527Date d'inscriptionjeudi 15 janvier 2004StatutMembreDernière intervention16 octobre 2019
-
10 janv. 2008 à 16:13
Bonjour et merci en avance pour votre aide!
Voici mon problème:
J'ai un dbgrid qui affiche le résultat d'une requête sql sur une base de données access..
Mes champs monétaire s'affiche comme suit:
1
1,1
1,11
j'aimerais qu'ils s'affichent comme suit:
1,00$
1,10$
1,11$
Deplus, je n'ai rien trouver pour entrer une valeur monétaire?!
Un Edit qui filterais les touche clavier ou un maskedit?!
que me conseillez-vous?
procedure TForm1.ControlEnter(Sender: TObject);
{Dans l'Inspecteur d'objet: à mettre dans l'évènement OnEnter et OnClick de chaque Edit.}
begin
{On place le caret juste avant le symbole monétaire.}
(Sender as TEdit).SelStart := Length((Sender as TEdit).Text)-(Length(CurrencyUnit));
end;
procedure TForm1.ControlKeyPress(Sender: TObject; var Key: Char);
{Dans l'Inspecteur d'objet: à mettre dans l'évènement OnKeyPress de chaque Edit.}
begin
{On filtre les saisies.}
if not(Key in ['0'..'9',#8 ,#46]) then Key := #0;
end;
procedure TForm1.ControlExit(Sender: TObject);
{Dans l'Inspecteur d'objet: à mettre dans l'évènement OnExit de chaque Edit.}
var
V : Extended;
Code : Integer;
S : String;
begin
{On élimine le symbole monétaire.}
S := Copy((Sender as TEdit).Text,0,Length((Sender as TEdit).Text)-Length(CurrencyUnit));
{On évalue la chaîne restante en flottant.}
val(S,V,Code);
if Code=0 then //Si ça réussit..
(Sender as TEdit).Text := formatfloat('0.00' + CurrencyUnit,V)
else ShowMessage('caractère ' + IntToStr(Code) + ' erroné');
end;