读书人

急着毕业高手帮帮忙啊有关动态创建E

发布时间: 2012-03-22 17:43:57 作者: rapoo

急着毕业,高手帮帮忙啊,有关动态创建EDIT的问题
我想动态创建一个EDIT,然后响应这个动态edit的enter事件,如何实现,并且怎样释放它。
我目前的代码是这样的,但是没有响应:
private
{ Private declarations }
procedure editenter(sender:tobject);//声明事件函数

procedure tmai_form.editenter(sender:tobject); //写enter事件
begin
series1.YValue[valuex]:=strtofloat(aedit.Text);
end;


procedure Tmai_form.N37Click(Sender: TObject);//动态创建edit并设置enter事件属性
begin
aedit:=tedit.Create(chart1);
aedit.Parent:=chart1;
mk:=true;
aedit.Font.Size:=10;
aedit.Font.Color:=clblack;
aedit.Font.Style:=[fsbold];
aedit.Height:=30;
aedit.Left:=xpoint;
aedit.Top:=ypoint;
aedit.Visible:=true;
aedit.SetFocus;
aedit.OnEnter:=editenter;
end;
请达人帮忙啊,还有如何释放edit?

[解决办法]
楼主的详细答案如下:
首先楼主可能没有搞清楚什么是ENTER时间,如果楼主所指的ENTER事件如果是EDIT的OnEnter时间的话那么这个事件的帮助中的解释是Occurs when a control receives the input focus.就是指当Edit被指定为输入的时候,才可以调用OnEnter事件!
另外具体的代码如下:

在窗体上放一个LLabel1,Edit1,Button1,你点Button1后调用Button1的单击事件后产生aedit组件
通过语句对aedit进行状态设置,其中的
OnEnter:=aaa;
把aaa过程指定给aedit的OnEnter,当你aedit中输入数据后把输入焦点点到Edit1后再把焦点移动回aedit时,aedit的OnEnter被触发,执行了 Label1.Caption:=aedit.text;语句,就可以看到Label1.Caption改变,执行了如上的过程!
***********************************
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
procedure aaa(Sender:TObject);

public
{ Public declarations }
end;

var
Form1: TForm1;var aedit:Tedit;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

begin
aedit:=tedit.Create(self);
with aedit do begin
Parent:=self;
Font.Size:=10;
Font.Color:=clblack;
Font.Style:=[fsbold];
Height:=30;
Left:=200;
Top:=200;
Visible:=true;
SetFocus;
OnEnter:=aaa;
end;
end;

procedure TForm1.aaa(sender:TObject); //写enter事件
begin
Label1.Caption:=aedit.text;
end;


end.

读书人网 >.NET

热点推荐