Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIBRAIRIE DE CONTROLE (FILTRE) DE TOUCHE DANS UN TEDIT


Information sur la source

Description

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

  • 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.
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?
 

Commentaires et avis

signaler à un administrateur
Commentaire de f0xi le 20/12/2007 09:49:46 administrateur CS

procedure RealKey(var m:Char);stdcall;export;
begin
  if not (m in ['0'..'9',decimalseparator,#8]) then
    m := #0;
end;

procedure IntKey(var m:Char);stdcall;export;
begin
  if not (m in ['0'..'9',#8]) then
    m := #0;
end;

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Dlls... Besoin "urgent" !! [ par Bestiol ] Salut tt le monde !!J'aurais besoin qu'on m'aide pour l'utilisation des dlls dans Delphi(6)... De la création de la dll à l'implémentation des appels TEdit avec masque de saisie [ par lguez ] Existe t'il un composant dérivé de TEdit dans lequel on peut lui définir un masque de saisie.par exemple :avoir la possibilité de ne rentrer que des n Graphique sur un TEdit [ par magicvinni ] Bonjour, j'ai un dessin sur la fond de ma fiche et un TEdit dessus mais invisible au debut de l'application. Quand je veux faire un rectangle sur le f Evenements [ par MasterJ ] Je veux savoir si il y a un moyen de regrouper la gestion d'évènements de plusieurs controles Tedit similaires avec une seule procédure.Exemple : J'ai Valider le type d'un TEdit [ par MasterJ ] Bonjour tt le mde,comment fait-t-on pour vérifier que le contenu d'un TEdit est bien du type que l'on veut.Plus précisément, j'envoie le contenu d'un Alignement controle TEdit [ par ricopetitdejeuner ] Bonjour !!Voila, je voudrais savoir s'il existe une propriete pour aligner le texte d'un TEdit a droite (comme pour un TLabel, avec le taLeftJustify), Une boucle pour scanner des Tedit [ par MasterJ ] Bonjour tt le monde,je me demandais s'il est possible de scanner plusieurs Tedit ayant un nom composé d'une racine similaire et d'un numéro ordinal a Stocker dernier composant ayant genere event [ par MasterJ ] Bonjour todo el mondo,comment fais t'on pour garder dans une variable le dernier composant ayant genere un evenement. Le but est de faire un petit un utilisation des dlls [ par ak47 ] salut à tous!Je suis en train de faire un programme ki, entre autre, interpreterai des scripts, et j'aimerai utiliser les dll pour stocker toutes les Forcer affichage menu systeme [ par fabiin ] Salut g une application sans barre de titremais je voudrai kan même afficher le menu systeme lors du klik droit :)comment faire ???merci par avance <i


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,468 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.