首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

帮忙解释下下面代码的思路解决办法

2012-03-13 
帮忙解释下下面代码的思路unit MainUnitinterfaceusesWindows, Messages, SysUtils, Classes, Graphics,

帮忙解释下下面代码的思路
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ExtCtrls, jpeg, OleCtrls, MPlayer;

type
  TMainForm = class(TForm)
  Image1: TImage;
  Image2: TImage;
  Image3: TImage;
  OpenDialog1: TOpenDialog;
  MediaPlayer1: TMediaPlayer;
  procedure FormCreate(Sender: TObject);
  procedure Image2Click(Sender: TObject);
  procedure Image3Click(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  MainForm: TMainForm;
  AppPath: String;
  Rgn: HRgn;
implementation



从这里开始{{
procedure TMainForm.FormCreate(Sender: TObject);
var
  RgnDataSize:integer;
  RgnData:PRgnData;
  Reader:TFileStream;
begin
  AppPath:=ExtractFilePath(Paramstr(0));
  try
  Reader:=TFileStream.Create(AppPath+'video.msk',fmOpenRead);
  Reader.Read(RgnDataSize,Sizeof(RgnDataSize));
  if RgnDataSize=0 then exit;
  GetMem(RgnData,RgnDataSize); //为重绘区域申请内存
  Reader.Read(RgnData^,RgnDataSize);
  Reader.Free;

  Rgn:=ExtCreateRegion(Nil,RgnDataSize,RgnData^); //根据内存建立一个绘制区域
  if Rgn=0 then exit;
  SetWindowRgn(Handle,Rgn,True); //重新绘制窗口
  Image1.Picture.LoadFromFile(AppPath+'video.bmp');}}这里

  Width:=Image1.Picture.Bitmap.Width;
  Height:=Image1.Picture.Bitmap.Height;
  except
  MessageDlg('Can not load .msk files',mtError,[mbOK],0);
  Application.Terminate;
  exit;
  end;

end;

procedure TMainForm.Image2Click(Sender: TObject);
begin
  Close;
end;

procedure TMainForm.Image3Click(Sender: TObject);
begin
  if OpenDialog1.Execute then
  begin
  if OpenDialog1.FileName<> '' then
  begin
  MediaPlayer1.FileName:= OpenDialog1.FileName;
  MediaPlayer1.Play;
  end
  else
  ShowMessage('请选择视频文件!');
  end;
end;

end.


不知道这是怎么回事,不就是编个媒体播放器吗 ,怎么还要搞到内存编辑去

[解决办法]
意图是当视频没有播放的时候, 在播放区域显示一副图片, 不然没东西显示不好看


另外 RgnDataSize 貌似没初始化

热点排行