Delphi中,我使用了一个TEdit控件,把他设为了只读,现在需要判断其中的text是否改变使用 15
procedureTForm1.Edit1Change(Sender:TObject);beginB:=True;end;可我通过按钮改变了TEdit中的text为什么B...
procedure TForm1.Edit1Change(Sender: TObject);
begin
B:= True;
end;
可我通过按钮改变了TEdit中的text为什么B仍然是False,求各位高手帮帮忙,谢谢了~ 展开
begin
B:= True;
end;
可我通过按钮改变了TEdit中的text为什么B仍然是False,求各位高手帮帮忙,谢谢了~ 展开
展开全部
要实现你所需要的功能,要用到Windows的消息处理机制,这样相对比较麻烦,有一个简单的办法,就是在你用Button改变了Edit1的内容后,再执行Edit1的OnChange事件处理过程。
例如:
Edit1.Text:='我爱回答';
Edit1Change(Edit1);
例如:
Edit1.Text:='我爱回答';
Edit1Change(Edit1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
B:Boolean;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
B:=TRUE;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:='asdfasd';
if B then
showmessage('aaa');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if B then
edit2.Text:='true'
else
edit2.Text:='false';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
B:=FALSE;
end;
end.
经过以上代码测试,你说的问题没有重现。建议重装delphi或换台机器试试。
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Button2: TButton;
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
B:Boolean;
implementation
{$R *.dfm}
procedure TForm1.Edit1Change(Sender: TObject);
begin
B:=TRUE;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text:='asdfasd';
if B then
showmessage('aaa');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if B then
edit2.Text:='true'
else
edit2.Text:='false';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
B:=FALSE;
end;
end.
经过以上代码测试,你说的问题没有重现。建议重装delphi或换台机器试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主,我打个通俗的比方,你如你的Edit是一个广告灯箱, 你架设了个广告灯箱在街头,设置了报警装备,有人往玻璃上乱贴东西的话,会报警(B:=True),但是你自己打开灯箱后面的门,进去在玻璃后面换广告图,这时候报警器是不会响的,明白了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
刚刚验证了一下,应该是你其它地方出的问题,B的值是会改变的 :)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询