Bloquer saisie dbgring

Résolu
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008 - 9 avril 2008 à 08:24
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 9 avril 2008 à 16:21
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

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
9 avril 2008 à 16:21
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%" />
3
jerome57440 Messages postés 40 Date d'inscription lundi 3 mars 2008 Statut Membre Dernière intervention 8 juillet 2008
9 avril 2008 à 09:26
comment autoriser que les nomcres de 0 a 9 dans un celule d'un dbgring
0
cs_matrix1 Messages postés 169 Date d'inscription dimanche 16 février 2003 Statut Membre Dernière intervention 15 avril 2008
9 avril 2008 à 11:59
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
0
Rejoignez-nous