if Key = VK_F1 then
    begin
      ShellExecute(0,'open','safe.chm',nil,nil,SW_SHOW);
    end;请问为何出错?提示类型不匹配。

解决方案 »

  1.   

    在KEYDOWN事件里写,不要在KEYPRESS事件里写。
      

  2.   

    放在keydown事件里,不要放在keypree里
      

  3.   

    procedure Tsafe_mainForm.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = VK_F1 then
        begin
          ShellExecute(0,'open','safe.chm',nil,nil,SW_SHOW);
        end;
    end;
    本身就在KEYDOWN事件里写的。
      

  4.   

    if key = chr(VK_f1)then....
    或者
    Form.KeyPreView := true;
      然后
      if Key = VK_F1 then begin
          ShellExecute(0,'open','safe.chm',nil,nil,SW_SHOW);
        end;
      

  5.   

    vk_F1是一个整数,key是一个char,不管在什么地方,都要转换一下。
      

  6.   

    if key = chr(VK_f1)then....
    这样也不行呀?
      

  7.   

    cxreal(夜晚的猪) :
    在编译时提示类型不匹配。