F10,F11为全局热键,要实现的功能为:按F10时创建bmp,bmp1,并响应执行F10热键代码。按F11时跳出循环体,
并释放bmp,bmp1,但在运行时按了F11后提示错误,删除了bmp.free,bmp1.free后就不会提示错误了。var
  From1:TForm1;
  bool:boolean;
procedure TForm1.hotkey(var msg:tmessage);
var
  bmp,bmp1:tbitmap;
  bool2,bool3:boolean;
begin
  if msg.LParamHi=vk_f11   //按F11停止
     then begin
       bool:=false;
       bmp.free;
       bmp1.free;                      //*****放在这里提示错误
     end
     else begin
       bmp:=tbitmap.Create;
       bmp1:=tbitmap.Create;
       bmp.LoadFromFile('c\1.bmp');
       bmp1.LoadFromFile('c:\2.bmp');
       bool:=true;                     //bmp的创建放在这里是避免每次按F10时重复bmp。create
     end;
  if msg.LParamHi=vk_f10   //按F10开始
     then begin
       while bool do
         begin
           while bool2 do
             begin
               //这里面要用到bmp和bmp1
               ...
             end;
           Application.ProcessMessages;
           if bool=false then break;
           while bool2 do
             begin
               //这里面也要用到bmp和bmp1
               ...
             end;
           Application.ProcessMessages;
           if bool=false then break;
           .....
         end;
     end;