Ceci un librairie ou dll qui controle les entrees des utilisateurs dans un TEdit.Limitation des entrees a des chiffres entiers ou avec virgules.L'edition acceptant le retour de chariot.
Vous appelerez les fonction par les evenements de Tedit OnKeyPress
qui accepte une variable Char.
Exemple:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
IntKey(Key);
end;
Pour importer les fonctions dans le programme,exemple:
var
Form1: TForm;
IntKey:procedure(var m:Char);stdcall;
RealKey:procedure(var m:Char);stdcall;
Source / Exemple :
library dimbfunc;
{ Dlls de controle de touche
entree de chiffre entier ou decimal par exemple
dans une boite d'edition.Cet exemple est specifique
pour la platforme Windows }
uses
Forms,SysUtils,Windows,Dialogs,Classes;
{$R *.res}
var w:Byte;
function SeparDec:Byte;
var c:Char;
TF:TFormatSettings;
InfoLocal:Integer;
begin
InfoLocal:=Languages.LocaleID[0];
GetLocaleFormatSettings(InfoLocal,TF);
c:=TF.DecimalSeparator;
if c=','then Result:=1 else Result:=0;
{recuperation de separateur decimal
pour un point ou un virgule.}
end;
procedure RealKey(var m:Char);stdcall;export;
var n:Integer;
{touches numériques avec virgule(réel)
ou point(si anglais)}
begin
n:=Ord(m);
if w=1 then begin
if (n>=48)and (n<=57)then m:=m
else if (n=Ord(VK_BACK))or(n=44) then m:=m else m:=#0;
end else begin
if (n>=48)and (n<=57)then m:=m
else if (n=Ord(VK_BACK))or(n=46) then m:=m else m:=#0;
end;
end;
procedure IntKey(var m:Char);stdcall;export;
var n:Integer;
begin
//nombre entier de 0 a 9
n:=Ord(m);
if (n>=48)and (n<=57)then m:=m
else if n=Ord(VK_BACK) then m:=m else m:=#0;
end;
exports IntKey,RealKey,EntKey;
begin
w:=SeparDec;
end.
Conclusion :
Comment compter si les sepateurs decimals sont en plus
et que le chiffre ne commence pas par un separateur decimal?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.