在OnKeyPress里判断吧 if not (key in [0..9,#8]) then key:=0;
procedure TTrainForm.DetailDataSourceDataChange(Sender: TObject; Field: TField); var Str:string; begin if field.Name='df_datetime' then begin str:=trim(detailadoquery.fieldbyname('df_datetime').AsString); if length(sm.Purge(str,['1'..'9',':']))>0 then showmessage('dsfadljl'); end; end;程序出错是怎么回事?
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if not(Dbgrid1.DataSource.DataSet.State in[dsInsert,dsEdit])then exit; if Key in[$30..$39] then ShowMessage('Number') else begin ShowMessage('Not Number'); ... end; end;
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if dbgrid1.SelectedField.FieldName='custno' then if not (key in ['0'..'9','.',#8]) then key:=#0; end;
if not (key in [0..9,#8]) then
key:=0;
Field: TField);
var
Str:string;
begin
if field.Name='df_datetime' then
begin
str:=trim(detailadoquery.fieldbyname('df_datetime').AsString);
if length(sm.Purge(str,['1'..'9',':']))>0 then
showmessage('dsfadljl');
end;
end;程序出错是怎么回事?
Shift: TShiftState);
begin
if not(Dbgrid1.DataSource.DataSet.State in[dsInsert,dsEdit])then exit;
if Key in[$30..$39] then
ShowMessage('Number')
else
begin
ShowMessage('Not Number');
...
end;
end;
begin
if dbgrid1.SelectedField.FieldName='custno' then
if not (key in ['0'..'9','.',#8]) then key:=#0;
end;