我想做一个按任意键显示,然后再按任意键取消显示的功能,不知道我下面的代码那里出错了,按键盘就是没有反应 
请大虾提供点意见,最好有代码可供参考,谢谢 
unit Unit1; interface uses 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
  Dialogs, StdCtrls; type 
  TForm1 = class(TForm) 
    Label1: TLabel; 
    procedure FormCreate(Sender: TObject); 
    procedure FormKeyPress(Sender: TObject; var Key: Char); 
  private 
    { Private declarations } 
  public 
    { Public declarations } 
  end; var 
  Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); 
begin 
  Self.KeyPreview := True; 
end; procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); 
begin 
  if key <> #0  then 
    label1.Caption :='1111'; 
end; end. 

解决方案 »

  1.   

    写在KeyDown或者KeyUp中,如果是不可见字符,不触发KeyPress事件
      

  2.   

    再请问一下
    用DELPHI如何获取EXCEL表格某一列的最大行数
    比如说怎么知道,A列用了多少行,而不考虑B列、C列或其他列。
      

  3.   


    //ado连上xls,遍历一下
    ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
            'Data Source=''d:\xx.xls'';' +
            ' Extended Properties=Excel 8.0;' +
            ' Persist Security Info=False;';
    AdoQuery1.Sql.text:='select * from [Sheet1$]';

      

  4.   

    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); 
    begin 
      //Form1上还有其他子窗口,这个事件是不会执行的。
    end; 
      

  5.   

    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); 
    begin 
      if key <> #0  then 
        label1.Caption :='1111'; 
    end; 改为:procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char); 
    begin 
        label1.Caption :='1111'; 
    end;