flag:=''
try
flag:='B';
exit;
finally
flag:='C' //不是总被执行吗?
endshowmessage(flag); //flag的值都是B跟踪后发现flag:='C'不会被执行
运行环境为dephi2007
try
flag:='B';
exit;
finally
flag:='C' //不是总被执行吗?
endshowmessage(flag); //flag的值都是B跟踪后发现flag:='C'不会被执行
运行环境为dephi2007
解决方案 »
- 来深圳20天,简历发了5份,没人理
- 水晶报表调用显示为什么总是少一条记录,太郁闷了。来着有分。
- 用delphi怎麼寫這樣一個方法阿,大家給幫忙解決一下,謝謝了!
- 各位大虾,请问DM控件是在哪里调出了来那?初学者来着,555!
- 什么函数可把字串类型转变成整数类型?比如'02'转成2
- 高分求一简单问题: c转换pascal
- 如何把DLL窗体中的数据,传回主程序?
- 数据库书签问题
- 请问如何在quickrep报表里,计算打印页的总数,然后填在QRlabel中?
- 有谁知道 shelltreeview1.Selected.Text,如何判断得到的是节点还是文件名?
- 如何获得昨天和明天的日期?
- UDP客户端接收数据的一个小问题
ShowMessage('1');
Exit;
finally
ShowMessage('2');
end;
var
flag: string;
begin
try
flag := 'a';
exit;
finally
flag := 'b';
ShowMessage(flag);
end;
end;
你的代码是这样的吗?为什么我测试是显示“b”呢我的d7+xp
FINALLYEND;
最后一定要执行finally中的语句,没执行是优化了如果你这样
try
xFrom = TForm.Create(nil);
finally
xFrom.Free;
end;
肯定会被free
var
lVar:Integer;
begin
lVar := 0; //不和谐 后面有读
Caption := IntToStr(lVar); //读
lVar := StrToInt('1');//不和谐
lVar := 1+2; //和谐
end;取函数返回值不会和谐是因为 不知道函数做了什么 也许执行它会设置个全局标记 这样就有存在的意义了
实际上 StrToInt 是不会动全局数据的 可编译器没去分析 也没必要分析 直接不和谐就好了
String 是个例外 procedure TForm1.FormCreate(Sender: TObject);
var
lVar:string;
begin
lVar := '很好很和谐'; //写 不和谐
Caption := lVar; //因为这有读
lVar := IntToStr(ParamCount);//不和谐 函数调用不知道函数做了啥
lVar := '';//还是不和谐 原因请自己 查string 什么东西
end;
优化好像有时是会出问题的
写到另一个Button里。
我得到的是 C (D2007)