我是刚学Delphi的,由于要自己写个flash播放器,还要在Flash控件上屏蔽鼠标右键
由于是刚学,还没看什么书,就这看看,那看看,拼凑了这个程序,还有好多问题不
懂,在编译是出现了这个提示:
=======================================================
[Error] delphi.pas(47): Object or class type required
[Error] delphi.pas(47): Object or class type required
[Warning] delphi.pas(47): Comparing signed and unsigned types - widened both operands
[Fatal Error] Project1.dpr(5): Could not compile used unit 'delphi.pas'
=======================================================源程序如下:
=============================================================
unit delphi;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, ExtCtrls, StdCtrls, Menus,
  AppEvnts;type
    TForm1 = class(TForm)
    ShockwaveFlash1: TShockwaveFlash;
    ApplicationEvents1: TApplicationEvents;
    PopupMenu1: TPopupMenu;
    N11231: TMenuItem;
    procedure FormResize(Sender: TObject);
    procedure ApplicationEvents1ActionExecute(Action: TBasicAction;
      var Handled: Boolean);
  private
    { Private declarations }  public
    { Public declarations }  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormResize(Sender: TObject);//实现flash控件的全屏
begin
        shockwaveflash1.Width:=GetSystemMetrics(SM_CXSCREEN);
        shockwaveflash1.Height:=GetSystemMetrics(SM_CYSCREEN);
        shockwaveflash1.Hide;
        shockwaveflash1.Show;
        shockwaveflash1.SetFocus;
end;procedure TForm1.ApplicationEvents1ActionExecute(Action: TBasicAction;
  var Handled: Boolean);begin
 if (Msg.message = WM_RBUTTONDOWN) and (Msg.hwnd = ShockwaveFlash1.handle) then
   begin
     popupmenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
     Handled := True;
   end;
end;end.
=============================================================
还望高手救我啊,好象这还可以给分的,谁第一个救我,我就给他(给多少才好了,你自己说吧,50-100?最好还教我怎么给分,&^_^&)

解决方案 »

  1.   

    从哪里copy来的代码啊?残缺不全的Msg这个消息变量没有定义......
      

  2.   

    这个程序恐怕不是你写的吧,COPY过来的吧。:)
    MSG这个东西先定义再用。
      

  3.   

    就是因为到处copy过来一点,所以残缺不全,求你告诉我MSG这个东西怎么定义。能不能在我的代码上修改一下,再贴出全部的来了,谢谢了,我急着用啊
      

  4.   

    在FormCreate事件中定义消息映射如下:
        application.onmessage := ApplicationEvents1ActionExecute;
      

  5.   

    大哥们,还是不行啊
    在FormCreate事件中定义消息映射如下:
        application.onmessage := ApplicationEvents1ActionExecute;
    我加进去还是错误
    [Error] delphi.pas(47): Object or class type required
    能不能把整个的写出来啊,我实在是太菜了,现在又赶着用,求大哥帮帮忙,谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢谢
    拜托了~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
      

  6.   

    函数定义是这样的:
    procedure ApplicationEvents1ActionExecute(var Msg: tagMSG; var Handled: Boolean);
            好运!
      

  7.   

    我改成这样就通过了,这是太感谢你了~~~
    ====================================================================
    unit delphi;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, ExtCtrls, StdCtrls, Menus,
      AppEvnts;type
        TForm1 = class(TForm)
        ShockwaveFlash1: TShockwaveFlash;
        ApplicationEvents1: TApplicationEvents;
        PopupMenu1: TPopupMenu;
        N11231: TMenuItem;
        procedure FormResize(Sender: TObject);
        procedure ApplicationEvents1ActionExecute(Action: TBasicAction;
          var Handled: Boolean);
      private
        { Private declarations }  public
        { Public declarations }  end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormResize(Sender: TObject);//实现flash控件的全屏
    begin
            shockwaveflash1.Width:=GetSystemMetrics(SM_CXSCREEN);
            shockwaveflash1.Height:=GetSystemMetrics(SM_CYSCREEN);
            shockwaveflash1.Hide;
            shockwaveflash1.Show;
            shockwaveflash1.SetFocus;
            application.onmessage:=ApplicationEvents1Message;//定义加在这了由“ApplicationEvents1ActionExecute”变成了“ApplicationEvents1Message”有什么区别我就不知道了,只知道效果达到了,&^_^&
    end;procedure TForm1.ApplicationEvents1ActionMessage(Action: TBasicAction;
      var Handled: Boolean);begin
     if (Msg.message = WM_RBUTTONDOWN) and (Msg.hwnd = ShockwaveFlash1.handle) then
       begin
         popupmenu1.Popup(Mouse.CursorPos.X, Mouse.CursorPos.Y);
         Handled := True;
       end;
    end;end.
    ===================================================================
    求你再帮我看看这
    http://expert.csdn.net/Expert/topic/1450/1450780.xml?temp=.5403711
    谢谢了,我给分了,哈哈~~~~~~~~~~~~~~~~~~~~`
      

  8.   

    朋友,你多等会,我第一次给分,出了问题,我在管理里面是给了,可这还看不出来,我正在请版主帮我解决这个问题,不要急,你要是急,我还真不好意思了,别人帮忙连报酬也没有,是不是有点那个啊~~~~~~&^_^&