重要问题,加急!!100

zhiwuyang602 2003-08-23 10:32:29
我写了一个类。里面用了tlist等控见
但是为什么我访问里面的一些方法时会出现一些奇怪的问题::
如::
while Fcritical do /////////1111 到这里时就不执行了
begin
Application.ProcessMessages;
Sleep(1);
end;
Fcritical := true;
这样的代码回出错,
请问各位大虾一般事什么原因啊
...全文
58 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
47522341 2003-08-23
  • 打赏
  • 举报
回复
可以这么考虑一下,Fcritical 如果为假那段程序就不会执行,如果为真,就是死循环了,^_^,
DJ_KK 2003-08-23
  • 打赏
  • 举报
回复
西瓜给分
zhiwuyang602 2003-08-23
  • 打赏
  • 举报
回复
构析函数:
constructor TUserGroup.Create(DbConn, TbName,KeyField: string);
var
Flag:integer;
begin
FCritical := false;
FTbName := TbName;
FKeyName:= KeyField;
FFreeHour := 6;
FTimeMin := 60;
FTime := TTimer.Create(nil);
FTime.Interval := FTimeMin * 60 * 1000;
FTime.OnTimer := SvrOnTimer;
FTIme.Enabled := true;
FUserList := TList.Create;
Flag:=FUserList.Count;
FAdoconn := TADOConnection.Create(nil);
FAdoconn.LoginPrompt := false;
FAdoconn.ConnectionString := DbConn;
For Flag:=0 to 60 do
Begin
FDBField[Flag].FieldType:=5;
FDBField[flag].FieldIndex:=30;
FDBField[flag].DBFieldName:=''
End;
end;

查找函数::

function TUserGroup.GetUser(AMp: string): TFindUser;
var
TmpUserResult: TFindUser;
TmpUser: TUser;
begin
try
// EnterCritical;
Result.User.KeyField := '';
Result.Index := -1;
TmpUserResult := Find(AMp);
if TmpUserResult.User.KeyField = '' then
begin
TmpUser := GetUserFromDb(AMp);
if TmpUser.KeyField <> '' then
begin
Result.Index := AddUser(TmpUser, TmpUserResult.Index);
Result.User := TmpUser;
end;
end
else begin
Result := TmpUserResult;
end;
finally
LeaveCritical;
end;
end;
zhiwuyang602 2003-08-23
  • 打赏
  • 举报
回复
Fcritical 是boolean型的
lxpbuaa 2003-08-23
  • 打赏
  • 举报
回复
搂住大虾啊,你那个Fcritical是什么啊?

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
yujohny 2003-08-23
  • 打赏
  • 举报
回复
if Fcritical then /////////Fcritical是布尔型的话,用if不就行了?
begin
Application.ProcessMessages;
Sleep(1);
end;
Fcritical := true;
DouZHlang 2003-08-23
  • 打赏
  • 举报
回复
构造函数中,Fcritical:=false; 又没有再改动,到while Fcritical do 当然不执行啦
lxpbuaa 2003-08-23
  • 打赏
  • 举报
回复
不是这句错:
while Fcritical do
而是它上面的代码有问题,贴出来吧,给你分析一下

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧