高手你们好:
  
    不用再多说别的了,请看下面!!!!    1、选来个小Kiss的,怎样做像Office XP那样的菜单,如果菜单上的图标当指针移上去的时候图标要有动态的阴影效果。
  
    2、嘿嘿!这个问题可是非同小可的了:怎样用最简单的方法实现系统热键的应用,(不限操作系统)这里就以(Ctrl + Enter)组合键为例,当我按下这个组合键的时候执行一条语句。    3、哈哈!这个问题就更是不得了了!怎样才能够在不限制操作系统(注:不限制操作系统也就是不管是win98、2k、XP等操作系统上都能实现)的时候自由地控制光驱的出入,更重要的就是怎样窃获计算机所有分驱和光驱的响应事件!比如说当我双击计算机内任一一个分驱时,并不是打开本分驱而是运行一语句!    以上问题你能够实现的请写出代码,并注明是第几题!当你完成了其中任一一题,你将获得一份小小的惊嘻!如果都解决了,你会有一场大惊喜的!不信你试试!!!!

解决方案 »

  1.   

    2:
    (*//
    标题:判断是否完成一系列按键操作
    说明:示例按键彩蛋
    设计:Zswang
    日期:2002-01-25
    支持:[email protected]
    //*)///////Begin Source
    function IsSeriesKey(var nIndex: Integer; mShortCuts: array of TShortCut;
      mShortCut: TShortCut): Boolean; { 返回是否完成一系列按键操作 }
    begin
      Result := False;
      if (nIndex >= Low(mShortCuts)) and (nIndex <= High(mShortCuts)) then 
    begin
        if (mShortCuts[nIndex] = mShortCut) then
          Inc(nIndex)
        else nIndex := 0;
        Result := nIndex > High(mShortCuts);
        if Result then nIndex := 0;
      end;
    end; { IsSeriesKey }
    ///////End Source///////Begin Demo
    { uses Menus }
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      KeyPreview := True;
    end;procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    {$J+}
    const
      vIndex: Integer = 0; //可修改类型常量(静态变量)适用Delphi6.0
    {$J-}
    begin
      if IsSeriesKey(vIndex, [
        TextToShortCut('Ctrl+z'),
        TextToShortCut('Ctrl+s'),
        TextToShortCut('Ctrl+w'),
        TextToShortCut('Ctrl+a'),
        TextToShortCut('Ctrl+n'),
        TextToShortCut('Ctrl+g')],
        ShortCut(Key, Shift)) then
        ShowMessage('Hello World!');
    end;
    ///////End Demo
      

  2.   

    CDSoftwareWj(95927) 说的是不是真的?
    1:使用控件TXPMenu,免费有源代码的!
    2:使用控件THotKey,也是免费有源代码的!
    这两个问题太简单了,网上下载就会有的。
    3:控制光驱的出入?这个容易!光驱的响应事件也容易,分区就真的麻烦了,
    控件TCDEVENTS解决光驱的响应事件
    控制光驱的出入:
    function TMainForm.OpenCDRom(Drive: char): boolean;
    var
      res:mcierror;
      openparm:TMCI_Open_Parms;
      flags:dword;
      s:string;
      deviceid:word;
    begin
      result:=true;
      s:=drive+':';
      flags:=mci_open_type or mci_open_element;
      with openparm do
        begin
          dwcallback:=0;
          lpstrdevicetype:='CDAudio';
          lpstrelementname:=pchar(s);
        end;
        res:=mcisendcommand(0,mci_open,flags,longint(@openparm));
        if res <> 0 then exit;
        deviceID:=openparm.wdeviceid;
        try
          res:=mcisendcommand(deviceid,mci_set,mci_set_door_open,0);
          if res = 0 then exit;
          result:=false;
        finally
          mcisendcommand(deviceid,mci_close,flags,longint(@openparm));
        end;
    end;function TMainForm.CloseCDRom(Drive: char): boolean;
    var
      res:mcierror;
      openparm:TMCI_Open_Parms;
      flags:dword;
      s:string;
      deviceid:word;
    begin
      result:=true;
      s:=drive+':';
      flags:=mci_open_type or mci_open_element;
      with openparm do
        begin
          dwcallback:=0;
          lpstrdevicetype:='CDAudio';
          lpstrelementname:=pchar(s);
        end;
        res:=mcisendcommand(0,mci_open,flags,longint(@openparm));
        if res <> 0 then exit;
        deviceID:=openparm.wdeviceid;
        try
          res:=mcisendcommand(deviceid,mci_set,mci_set_door_closed,0);
          if res = 0 then exit;
          result:=false;
        finally
          mcisendcommand(deviceid,mci_close,flags,longint(@openparm));
        end;
    end;
      

  3.   

    呵呵,这小家伙想做坏事了,
    解释:)  小惊喜@_^:每次给你一个一个奔,外加一百分  大惊喜哇,那不得了了,呵呵,送你一个大木马。哈哈。,我拴了先:),
    happy and lucky,早日完成你的做品哦,完成了,给个消息,送大哥哥一个,大哥哥帮你测试:))
      

  4.   

    哎,前边那几个问题我也会 ^_* 我说的是控制分区哦,有什么事件吗??MSDN上边有没有呢???