为什么用swflash控件显示FLASH以后,刚开始可以通过敲各个已经设定的键来切换个个FLASH,但只要用鼠标点了一下屏幕以后,再敲键切换就不行了?如何解决?

解决方案 »

  1.   

    是不是ShockwaveFlash1.SetFocus?好象不行.请帮忙再看看.
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     
      ShockwaveFlash1.ScaleMode:=0;
      ShockwaveFlash1.FreeOnRelease;
      ShockwaveFlash1.Movie:='d:\10487399664640.swf';end;procedure TForm1.Button2Click(Sender: TObject);
    begin
       
       ShockwaveFlash1.ScaleMode:=0;
       ShockwaveFlash1.FreeOnRelease;
       ShockwaveFlash1.Movie:='d:\a4345.swf';
    end;我是这样写的,其中Button1的热键是a,Button2的热键是b,刚开始敲A就到第一个FLASH,敲B就到第二个FLASH,可以互相切换,但为什么我在FLASH上点一下鼠标以后就不能再切换了?请各位高手指教了;(急!)
      

  3.   


    DFM :  Form1.KeyPreview = True ;  //F1,F2 可自由切换
    unit Unit1;
    interface
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, OleCtrls, ShockwaveFlashObjects_TLB;
    type
      TForm1 = class(TForm)
        ShockwaveFlash1: TShockwaveFlash;
        procedure FormKeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;
    implementation
    {$R *.dfm}
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if Key = Vk_F1 then
      begin
        ShockwaveFlash1.FreeOnRelease ;
        ShockwaveFlash1.Movie := 'C:\Documents and Settings\Welcome\My Documents\光良-第一次 .SWF' ;
        Sleep(100) ;
        ShockwaveFlash1.Play ;
      end ;  if Key = Vk_F2 then
      begin
        ShockwaveFlash1.FreeOnRelease ;
        ShockwaveFlash1.Movie := 'C:\Documents and Settings\Welcome\My Documents\我是真的爱你.SWF' ;
        Sleep(100) ;
        ShockwaveFlash1.Play ;
      end ;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      ShockwaveFlash1.FreeOnRelease ;
      ShockwaveFlash1.Movie := 'C:\Documents and Settings\Welcome\My Documents\心语星愿.SWF' ;
      ShockwaveFlash1.Play ;
    end;
    end.
      

  4.   

    已经好了:)多谢,顺便问一下就是Form1.KeyPreview:= True是什么意思?什么功能?为什么加了这句就没问题了?
      

  5.   

    只有当 Keypreview = True 时窗体首先响应键盘消息