salmainf
Messages postés6Date d'inscriptionlundi 11 mars 2013StatutMembreDernière intervention31 juillet 2013
-
20 juil. 2013 à 14:39
salmainf
Messages postés6Date d'inscriptionlundi 11 mars 2013StatutMembreDernière intervention31 juillet 2013
-
24 juil. 2013 à 20:35
Bonjours ,à tous;
Merci bien de m'aider pour avoir une solution .
j'ai convertis la date en lettre arabe et j'ai utilise pour cela le code source ci-dessous.Le problème c'est que lors de l’exécution et quand je saisie une date quelconque dans le dbedit32 le système m'affiche un message d'erreurs** le 0 n'est une date valide**.Aider moi stp c'est urgent.
Merci d'avance;
*************************Voici le code source******************
procedure TLaivraison_Actes_C13.DBEdit32KeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
Var annee,mois,jours :word;
x : Tdate;
const esp= ' ';
begin
x := StrtoDate(DBEdit32.Text);
DecodeDate(x,annee,mois,jours);
label38.Caption:=jours2Lettre(jours)+esp+mois2Lettre(mois)+esp+convertAr0(annee);
end;
*********************Unit LadateGlobal********************************
unit LaDateGlobal;
interface
uses
SysUtils ;
function convertAr0(Montant:Currency):string;
function centimAr0(Valeur:Currency):string;
function jours2Lettre(jour: word): string;
function mois2Lettre(moi: word): string;
function mois2Lettre(moi: word): string;
var M_L:string;
begin
case moi of
1:M_L :='ÌÇäÝí' ; 7 :M_L :='ÌæíáíÉ' ;
2:M_L :='ÝíÝÑí' ; 8 :M_L :='ÃæÊ' ;
3:M_L :='ãÇÑÓ' ; 9 :M_L :='ÓÈÊãÈÑ' ;
4:M_L :='ÃÈÑíá' ; 10:M_L :='ÃßÊæÈÑ' ;
5:M_L :='ãÇí' ; 11:M_L :='äæÝãÈÑ' ;
6:M_L :='ÌæÇä' ; 12:M_L :='ÏíÓãÈÑ' ;
end;// case
result:= M_L ;
end;
//--------------------
function convertAr0(Montant:Currency):string;
var some,centim, differ:string; posi:byte;i:Longint;
nombre:real;
begin
result:='';
if (montant=0) then
begin
result:='' ;exit;
end else
if(montant<0)then result:='';
str(montant:15:2,Some);
centim:=copy(some,14,2);
result:='';
montant:=Int(Montant);
//*******Milliards*******//
nombre:= Int(montant /1000000000);
if nombre > 0 then
begin
if nombre = 1 then
begin if result='' then result:= result + ' ãáíÇÑ ' else
result:= result +' æ '+ ' ãáíÇÑ ' ;
montant := montant -(nombre * 1000000000);
end else
if nombre = 2 then
begin if result='' then result:= result + ' ãáíÇÑíä ' else
result:= result +' æ '+ ' ãáíÇÑíä ' ;
montant := montant -(nombre * 1000000000);
end else
if (nombre > 2) and (nombre < 11) then
begin if result='' then result:= result +centimAr0(Nombre)+ ' ãáÇíí Ñ ' else
result:= result +' æ '+ centimAr0(Nombre)+' ãáÇíí Ñ ' ;
montant := montant -(nombre * 1000000000);
end else
if nombre > 10 then
begin if result='' then result:= result +centimAr0(Nombre)+ ' ãáíÇÑ ' else
result:= result +' æ '+centimAr0(Nombre)+ ' ãáíÇÑ ' ;
montant := montant -(nombre * 1000000000);
end else
end;
//****************Millionx************//
nombre:= Int(montant /1000000);
if nombre > 0 then
begin
if nombre = 1 then
begin if result = '' then result:= result + ' ãáíæä ' else
result:= result +' æ '+ ' ãáíæä ' ;
montant := montant -(nombre * 1000000);
end else
if nombre = 2 then
begin if result = '' then result:= result + ' ãáíæäíä ' else
result:= result +' æ '+ ' ãáíæäíä ' ;
montant := montant -(nombre * 1000000);
end else
if (nombre > 2) and (nombre < 11) then
begin if result = '' then result:= result +centimAr0(Nombre)+ ' ãáíæä ' else
result:= result +' æ '+centimAr0(Nombre)+ ' ãáÇííä ' ;
montant := montant -(nombre * 1000000);
end else
if nombre > 10 then
begin if result = '' then result:= result +centimAr0(Nombre)+ ' ãáíæä ' else
result:= result +' æ '+centimAr0(Nombre)+ ' ãáíæä ' ;
montant := montant -(nombre * 1000000);
end else
end;
//*************Milliers *********//
nombre:= Int(montant /1000);
if nombre > 0 then
begin
if nombre = 1 then
begin if result ='' then result:= result + ' ÃáÝ ' else
result:= result +' æ '+ ' ÃáÝ ' ;
montant := montant -(nombre * 1000);
end else
if nombre = 2 then
begin if result ='' then result:= result + ' ÃáÝíä ' else
result:= result +' æ '+ ' ÃáÝíä ' ;
montant := montant -(nombre * 1000);
end else
if (nombre > 2) and (nombre < 11) then
begin if result = '' then result:= result +centimAr0(Nombre)+ ' ÃáÇÝ ' else
result:= result +' æ '+centimAr0(Nombre)+ ' ÃáÇÝ ' ;
montant := montant -(nombre * 1000);
end else
if nombre > 10 then
begin if result = '' then result:= result +centimAr0(Nombre)+ ' ÃáÝ ' else
result:= result +' æ '+centimAr0(Nombre)+ ' ÃáÝ ' ;
montant := montant -(nombre * 1000);
end else
end;
//*******Centaines & down*******//
nombre:=Montant;
if (nombre>0)then begin
if result =''then result:= result+centimAr0(Nombre)else //-*-*-//
result:= result+' æ '+centimAr0(Nombre);
if (copy(result,1,4)=' æÇÍÏ ') and (Length(Result)=4)then
begin
//------------------------------------------------
//------------------------------------------------
Result:=''+centimAr0(StrTofloat(Centim))+' ' ;
end else
begin
if StrToInt(Centim)=0 then begin
Result:=Result+' '
end else
Result:=Result+' '+centimAr0(StrTofloat(Centim))+' ' ;
end; // differ:=result ;
// if copy(differ,2,1)='æ' then begin delete(differ,2,1) ;
// Result:=result+' '+ differ ;
// result:=differ ;
end
else if StrToInt(Centim)=0 then
Result:=Result+' '
else Result:=Result+' '+centimAr0(StrTofloat(Centim))+' ' ;
//--------------------------------- Formatagr du texte -----------------------
differ :=result;
//-----------------------------
if pos('ãÇÆÉ',Differ)<> 0 then
begin
posi:=pos( 'ãÇÆÉ ',Differ) ;
if ((copy(differ,posi+5 ,1) <> 'Ï' ) and (copy(differ,posi+5 ,1) <> 'æ' )) then
insert(' æ ',differ,posi+5);
posi:=pos( 'ãÇÆÉ æÇÍÏ',Differ) ;
if (copy(differ,posi+5 ,4) = 'æÇÍÏ') then insert(' æ ',differ,posi+5);
end ;
//------------------------------ **)
if pos('ãÇÆÊíä',Differ)<> 0 then
begin
posi:=pos( 'ãÇÆÊíä ',Differ) ;
if (copy(differ,posi+7 ,1) <> 'Ï' )then
insert(' æ ',differ,posi+7);
end ;
//------------------------------
posi:=pos('æ æ',differ);
if ((posi>1) and (copy(differ,pos('æ æ',differ),7)<> 'æ æÇÍÏ')) then delete(differ,posi+2,1);
result:=differ;
//--------------------------------- Fin du Formatagr du texte ----------------
end;
function centimAr0(Valeur:Currency):string;
var SUnit,SDiz,Code,mia:String;n1:Integer;
begin
SUnit:='æÇÍÏ ÅËäíä ËáÇËÉ ÃÑÈÚÉ ÎãÓÉ '+
'ÓÊÉ ÓÈÚÉ ËãÇäíÉ ÊÓÚÉ ÚÔÑÉ '+
'ÅÍÏì ÚÔÑ ÅËäì ÚÔÑ ËáÇËÉ ÚÔÑÃÑÈÚÉ ÚÔÑÎãÓÉ ÚÔÑ ÓÊÉ ÚÔÑ ÓÈÚÉ ÚÔÑ ÊãÇäíÉÚÔÑÊÓÚÉ ÚÔÑ ';
SDiz:='æÚÔÑíä æËáÇËíä æÃÑÈÚíä æÎãÓíä æÓÊíä '+
'æÓÈÚíä æËãÇäíä æÊÓÚíä ';
code:='';
mia:='';
//DDD:=False;
//N1:=0;
if Valeur>99 then begin
N1:=Trunc(valeur/100);
if (N1<>1 )and ( N1<>2 )
then mia:=mia+trim(copy(Sunit,(N1*9)-8,9));
valeur:=valeur-(N1*100);
if N1=2 then mia:=mia+' ãÇÆÊíä ' else // => et É 'æ '+
mia:=mia+' ãÇÆÉ '; // +' æ '
end;
//if valeur<>0 then begin
if valeur>19 then
begin
N1:=Trunc(Valeur/10)-1;
if code ='' then code:=code+trim(copy(SDiz,(N1*12)-11,12))+' '
else code:=code+'æ '+trim(copy(SDiz,(N1*12)-11,12));
N1:=Trunc(Valeur/10)*10;
Valeur := Valeur -N1; end ;
if (valeur> 0) then
code :=mia+trim(copy(sUnit,(trunc(valeur)*9)-8,9)) +' '+code else
code:=mia+' '+code;
//code :=mia+trim(copy(sUnit,(trunc(valeur)*9)-8,9)) +' áÇ '+code;