Bloquer saisie dbgring [Résolu]

Signaler
Messages postés
40
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
8 juillet 2008
-
Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
-
bonjour,
serait t'il possible de n'autoriser que le saisie des nombres de 0 a 9 dans un champs d'un BDgrind
lorsque je remplie min et maxvalue si je tape un nombre au dessus il y une erreur
merci d'avance

3 réponses

Messages postés
4202
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
13 juin 2020
37
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
  if autorise and (not (key in ['0'..'9']))  then key:=#0;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
  autrorise := column.Field.DataType=Ftinteger;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  autorise:=false;
end;

<hr size="2" width="100%" />
Messages postés
40
Date d'inscription
lundi 3 mars 2008
Statut
Membre
Dernière intervention
8 juillet 2008

comment autoriser que les nomcres de 0 a 9 dans un celule d'un dbgring
Messages postés
169
Date d'inscription
dimanche 16 février 2003
Statut
Membre
Dernière intervention
15 avril 2008

il te faut ajouter unévénement onchangecellul comme dans un Tedit ou tu peut faire ça

var
  Form1: TForm1;
  autorise:boolean;
implementation

{$R *.dfm}

procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if autorise =true then
if not (key in ['0'..'9'])  then key:=#0;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
if column.Field.DataType=Ftinteger then
autorise :=true else
autorise:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
autorise:=false;
end;

comme ça tu peut tu aurorise les nombre juste dans l'enregistrement de type integer