全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1602
推到 Plurk!
推到 Facebook!

判断dbgrid中录入的是一个正确的数字?

答題得分者是:leveon
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-06-12 15:03:21 IP:122.234.xxx.xxx 訂閱
请教各位大大,怎样判断在dbgrid的某个栏位中录入的是一个正确的数字?

post: 我在edit中倒是可以做到这一点,即我可以判断某个edit中录入的是不是一个正确的数字,code如下

var
i: integer;
f: Double;
begin
if TryStrToInt(Edit1.Text,i) or TryStrToFloat(Edit1.Text, f) then
ShowMessage('是数字')
else
ShowMessage('不是数字');
end

但我想用dbgrid来判断时,就不知怎么做了,请各位大大帮忙,不胜感激
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-06-14 14:21:22 IP:122.234.xxx.xxx 訂閱
我现在的问题就如下图,我想要判断用户输入的资料是否合法,不合法时焦点不允许离开

編輯記錄
luowy651 重新編輯於 2012-06-14 00:27:11, 註解 無‧
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-07-04 10:13:36 IP:125.122.xxx.xxx 訂閱
有哪位大大能帮一下忙吗?
小弟不胜感激之至!
leveon
資深會員


發表:29
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-07-04 10:35:23 IP:122.116.xxx.xxx 訂閱
abort;
就會不允許離開焦點


===================引 用 luowy651 文 章===================
我现在的问题就如下图,我想要判断用户输入的资料是否合法,不合法时焦点不允许离开

luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2012-07-04 14:00:26 IP:122.234.xxx.xxx 訂閱
谢谢leveon大大关注!
可能我没说清楚,我现在的情况是,这个提示框出来后,就不能edit了,一想edit,这个框就还是会出来,结果就不能再edit了,晕
能不能这个提示框不要出来?或者换成另一种自已设定的提示,比如提示"该数字不合法,请重新编辑", 然后按了"确定"后就可以还在焦点内重新编辑edit?
小弟用的是delphi7加上mssql2000
不胜感激!
編輯記錄
luowy651 重新編輯於 2012-07-04 00:02:26, 註解 無‧
luowy651 重新編輯於 2012-07-04 00:05:12, 註解 無‧
luowy651 重新編輯於 2012-07-04 00:05:47, 註解 無‧
luowy651 重新編輯於 2012-07-04 00:08:55, 註解 無‧
leveon
資深會員


發表:29
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2012-07-04 15:46:05 IP:118.165.xxx.xxx 訂閱
寫一個OnVaild的事件
public
procedure Validate(Sender: TField);
end;
procedure TForm1.Validate(Sender: TField);
var
i: integer;
f: Double;
begin
if TryStrToInt(Sender.AsString,i) or TryStrToFloat(Sender.AsString, f) then begin
ShowMessage('是数字')
end else begin
ShowMessage('不是数字');
abort;
end;
end;
//找個時間點掛上事件
procedure TForm1.FormShow(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.FieldByName('gzfj').OnValidate := Validate;
end;
//測試看看 保證可行
===================引 用 luowy651 文 章===================
谢谢leveon大大关注!
可能我没说清楚,我现在的情况是,这个提示框出来后,就不能edit了,一想edit,这个框就还是会出来,结果就不能再edit了,晕
能不能这个提示框不要出来?或者换成另一种自已设定的提示,比如提示"该数字不合法,请重新编辑", 然后按了"确定"后就可以还在焦点内重新编辑edit?
小弟用的是delphi7加上mssql2000
不胜感激!
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#7 引用回覆 回覆 發表時間:2012-07-05 10:32:27 IP:122.234.xxx.xxx 訂閱
正在试,非常感谢!
奇怪的是,上面那个框还是会出来,能不能让它不出来?
編輯記錄
luowy651 重新編輯於 2012-07-04 20:32:58, 註解 無‧
leveon
資深會員


發表:29
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2012-07-05 10:59:51 IP:122.116.xxx.xxx 訂閱
我用的是XE  是不會出來的 
===================引 用 luowy651 文 章===================
正在试,非常感谢!
奇怪的是,上面那个框还是会出来,能不能让它不出来?
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#9 引用回覆 回覆 發表時間:2012-07-05 13:06:44 IP:122.234.xxx.xxx 訂閱
谢谢leveon大大,能否把你的整个实例传给我看一下?
小弟邮箱: home777@163.com

leveon
資深會員


發表:29
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2012-07-06 14:04:30 IP:118.165.xxx.xxx 訂閱

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, DB, Grids, DBGrids, DBClient, SimpleDS, SqlExpr;

type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
SimpleDataSet1: TSimpleDataSet;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure Validate(Sender: TField);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Validate(Sender: TField);
var
i: integer;
f: Double;
begin

if TryStrToInt(Sender.AsString,i) or TryStrToFloat(Sender.AsString, f) then begin
ShowMessage('Number')
end else begin
ShowMessage('Not Number');
abort;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DBGrid1.DataSource.DataSet.FieldByName('BKAMT').OnValidate := Validate;
end;

end.

===================引 用 luowy651 文 章===================
谢谢leveon大大,能否把你的整个实例传给我看一下?
小弟邮箱: home777@163.com

編輯記錄
leveon 重新編輯於 2012-07-06 00:05:19, 註解 無‧
wameng
版主


發表:31
回覆:1336
積分:1183
註冊:2004-09-16

發送簡訊給我
#11 引用回覆 回覆 發表時間:2012-07-06 20:48:14 IP:36.228.xxx.xxx 訂閱
EditorMode
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#12 引用回覆 回覆 發表時間:2012-07-09 09:16:59 IP:122.234.xxx.xxx 訂閱
谢谢leveon大大,如果数字输入是正确的格式,会出现"是数字"这样的提示,如果不正确,如输入"1-",则还是会出现那个框,但不影响使用,可能和我的delphi或sql版本有关
先结帖,再谢!
編輯記錄
luowy651 重新編輯於 2012-07-08 19:21:06, 註解 無‧
luowy651
高階會員


發表:240
回覆:303
積分:108
註冊:2003-04-09

發送簡訊給我
#13 引用回覆 回覆 發表時間:2012-07-09 09:20:20 IP:122.234.xxx.xxx 訂閱
也谢谢wameng版主大大的关注!
小弟初学,能否说得更说详细些?
===================引 用 wameng 文 章===================
EditorMode
系統時間:2017-10-19 13:29:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!