当前位置:编程学习 > Delphi >>

delphi 帮忙看看这段程序

procedure Tform1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    case Key of
      VK_Return:
        begin
          Key := Word(#0);             //这句是什么意思?
          if ssShift in Shift then
            Perform(WM_NextDLGCTL, 1, 0)
          else
            Perform(WM_NEXTDLGCTL, 0, 0);          //两个perform是消息的意思,但第二位一个0,一个1都是什么意思?
        end;
      VK_UP:

         begin
          Key := Word(#0);
          Perform(WM_NEXTDLGCTL, 1, 0);
        end;
    end;
  end;
end;

答案:

procedure Tform1.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
    case Key of        //判断key的值
      VK_Return:   //如果为Tab键的话
        begin   
          Key := Word(#0);             //消除key值
          if ssShift in Shift then   //判断是否按下Shift
            Perform(WM_NextDLGCTL, 1, 0)    //如果按下则上一个控件获得焦点
          else                      
            Perform(WM_NEXTDLGCTL, 0, 0);          //否则下一个控件获得焦点, 1和0判断上一个还是下一个,1为上一个,0为下一个
        end;
      VK_UP:   //如果key为↑按钮

         begin
          Key := Word(#0);  //消除key值
          Perform(WM_NEXTDLGCTL, 1, 0);  //上一个控件获得按钮
        end;
    end;
  end;
end;

Key := Word(#0); //这句是什么意思? 清除输入值,相当于没有按键盘


//两个perform是消息的意思,但第二位一个0,一个1都是什么意思? 1反向,0正向. 相当于按TAB或加SHIFT时的活动控件的选择

上一个:Delphi 如何创建有效指针列表
下一个:delphi中怎么把窗体放到dll中去啊?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,