application.onException 可以捕捉到raise的提示框异常信息,读取过来,
但是我怎么才能捕捉到类似showmessage('hehe')的提示框信息
如:
tryexcept
on e: Excetpion do
showmessage(e.message);
end;
如何把e.message读取到我们要显示的Edit1中呢?
但是我怎么才能捕捉到类似showmessage('hehe')的提示框信息
如:
tryexcept
on e: Excetpion do
showmessage(e.message);
end;
如何把e.message读取到我们要显示的Edit1中呢?
解决方案 »
- 请问,这个帖子为啥被删
- 获取键盘输入的问题
- 请问AScool这个变量放在private和public以及var处的作用域是怎样?
- 一语句出错,求助。
- 这个问题困饶我好久了,请大家帮帮忙吧,在线等。。。。(小弟第一次发帖,请大家照顾照顾,在线等。)
- 寻找绝世高人 有什么办法实现全局代理访问网络
- 给分了,我该怎么办呀?大家来帮个忙
- 突然想到一个问题:如何删除当前.db库中G字段类型里的图像资料?
- 急,急,急!关于TWebBrowser的问题:请大家不吝赐教。
- Delphi语法:dynamic这个语法怎么用的,用它和不用它有什么区别了?
- 关于在线程中操作Image的问题,200分急求解
- 谁给我发一个senkey32.pas这个文件
var i : integer;
begin
try
i := strtoint('a');
showmessage('no error');
except
on e: Exception do
showmessage(e.message);
end;
end;
begin
try
I := StrToInt('a');
Edit1.text := 'No Error';
except
on E : Exception do
Edit1.Text := E.Message;
end;
end;
其中Edit1是放在主窗体上面的
procedure TForm1.ErrException(Sender: TObject; E: Exception);
begin
Edit1.Text := E.Message;
end;constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
Application.OnException := ErrException;
end;然后每次要我只要
tryexcept
raise Exception.create('msg');//这里Edit1.text 自然会显示msg,
//如果用 on e: Exception do
// showmessage(e.message); 则不能自动显示到Edit1上
end明白我的意思了吗?
showmessage(e.message);这个应该是把异常截取自己处理了吧,不会触发onException事件了。
不知道有没有人明白我的意思?
{ Private declarations }
public
{ Public declarations }
procedure TryExcepts(Sender: TObject; E: Exception);
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.TryExcepts(Sender: TObject; E: Exception);
begin
if E.Message = '' then
;
else
Edit1.Text := E.Message;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnException := TryExcepts;
end;procedure TForm1.Button1Click(Sender: TObject);//测试 1
var
I : integer;
begin
I := StrToInt('a');
end;procedure TForm1.Button2Click(Sender: TObject);//测试2
var
I : integer;
S : TStringList;
begin
S := TStringList.Create;
S.Text := 'line1' + #10 + 'line2' + #10 +'line3' + #10 +'line4';
for I := 0 to 5 do
showmessage(S[I]);// 5 越界
S.Free;
end;
; <------------------------去掉这个分号
else
begin
Edit1.Text := E.Message;
end;constructor TForm1.Create(AOwner: TComponent);
begin
inherited;
Application.OnException := ErrException;
end;也不一定是ShowMessage的对话框,根源是 e:exception
==================================================
楼主,你这不已经实现了么?
tryexcept
//raise Exception.create('msg');//这里Edit1.text 自然会显示msg,
//如果用 on e: Exception do
// showmessage(e.message); 则不能自动显示到Edit1上 on e: Exception do
begin
showmessage(e.message);
raise;
end;
end;