非常急得3个问题(120分)

  • 主题发起人 主题发起人 a_ping
  • 开始时间 开始时间
A

a_ping

Unregistered / Unconfirmed
GUEST, unregistred user!
工作中遇到的三个问题,非常急。
1。 在StringGrid中的一个格子里输过值后判断值对不对,应该用什么事件?
2。 DBGrid中的一列怎么显示带小数的值呢?
3。 MDI怎么判断一个ChildForm已打开,如果打开把它显示在最前面,
万分感谢!!!!!!!!!!!!!111
 
1.
KeyPress判斷輸入的字符是否有效
KeyUp判斷輸入的整體是否有效
 
3.
if frmNewOrders=nil then
begin
frmNewOrders := TfrmNewOrders.Create(Self);
frmNewOrders.Show;
end
else
frmNewOrders.BringToFront;


記得在字窗口關閉的時候
Self.Free;
Self := nil;

 
2.field.displayformat='0.00'
3.if assigned(childform) then
childform.bringtofront;
 
field有displayformat这个属性?
 
1.在stringgrid里面判断某一各输入是否正确用onselectcell里面写就行了,stringgrid会自动获取用户所操作的行和列的,用Arow和Acel可获得
2.不明白你的意思
3.Childform是自动创建还是动态的啊?
如果是动态的,用Assigned判断是否已创建,然后bringtofront就行了。
静态的就show一下咯。
 
TNumericField(Table.Fields[x]).Displayformat:='0.00'

 
我把第二个问题再说一下,就是说DBGrid中的一列的值要显示为带小数的,如170.00,该怎么做
 
=》3。 MDI怎么判断一个ChildForm已打开,如果打开把它显示在最前面
如果每个ChildForm的Class类型都不一样,那就好办了,用
if (xx is ActiveMDIChild) then
begin
ActiveMDIChild.Hide;
ActiveMDIChild.Show
end else ...
就可以搞定了。
如果每个ChildForm的Class一样,你就必须借助其他辅助信息了,一般用Tag,if (ActiveMDIChild.Tag = nnnn) then ... else ...
循环MDIMain的MDIChildren
 
2、
在窗体的OnShow事件中加入
TNumericField(Table.FieldByName('字段名称')).Displayformat:='#.00'

Table为数据源控件
也可在DBGrid的DataCell事件中格式化字符,但相比麻烦了
 
(Table.Fields[x]).Displayformat:='0.00'
 
至今一个没解决,关键是第二个问题,急阿,大家帮帮忙,前面几位都试了,不行
 
改用dbgrideh吧,在www.51delphi.com上有下载
 
如何动态设置DBGRID。比如,动态设置DBGRID的COLUMNS。及如何在数值数据格式成千分位来表示


1. DBGrid1.Columns.Add

2. 在字段编辑器中选择相应的字段,然后使用EditMask属性进行定义。
 
to zhangdl:
你的解释让我一团雾水,DBGrid中怎么有EditMask?
 
请看第一步DBGrid1的属性Columns...点Add
 
3。 MDI怎么判断一个ChildForm已打开,如果打开把它显示在最前面

解决方法如下:

{Form1为母窗体 Form2为子窗体}
procedure TForm1.FormClick(Sender: TObject);
var
i:Integer;
begin
for i:=1 to Form1.MDIChildCount do
begin
if (Form1.MDIChildren[i-1].Caption='Form2') and (Form1.MDIChildren[i-1].Visable=True)
then Form1.MDIChildren[i-1].Show;
end;
end;
 
多人接受答案了。
 
后退
顶部