<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 3  文章 - 2  trackbacks - 0
    <2007年4月>
    25262728293031
    1234567
    891011121314
    15161718192021
    22232425262728
    293012345

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    相冊

    收藏夾

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    用delphi編寫圖片播放組件(原創)-----轉載請寫明出處
    { ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    ::? Author:pengyi??? Email:pengyi.yi@126.com??? ::
    :: ::
    :: Unit : UnitImagePlay ::
    :: ::
    :: Developer Team : Mdcl DevTeam ::
    :: $Id: UnitImagePlay.pas,v 1.13 2006/07/13 08:22:24 Exp $ ::
    :: ::
    :: Created Date : 2005-12-8 ::
    :: Last Modified: $Date: 2006/07/13 08:22:24 $ ::
    :: Last Modifier: $Author:pengyi $ ::
    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: }

    unit UnitImagePlay;

    interface
    uses Messages, Windows, SysUtils, Classes, CutlineU,
    Controls, Forms, ExtCtrls, Graphics, StdCtrls, Dialogs;
    type
    TXPImage = class;

    TShowPicture = class(TThread)
    private
    Fidx: integer; {當時顯示的數}
    //I:integer;
    FItem: TXPImage;
    protected
    procedure Execute; override;
    public
    procedure SetPicture;
    constructor Create(Aowner: TXPImage);
    end;

    TXPImage = class(TComponent)
    private
    FActive: Boolean; //當前是否擊活
    FInterval: Integer;
    //FTimer :TTimer;
    FImgbmp: TBitmap;
    //FImage: TImage;
    FImage: TCutline;
    FImageList: TImageList;
    FshowPic: TShowPicture;
    procedure SetActive(Value: Boolean); virtual;
    procedure SetInterval(Value: Integer);
    procedure SetImageList(Value: TImageList);
    procedure SetImage(Value: TCutline);
    public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    procedure Start;
    // Procedure Pause;
    //Procedure Continue;
    procedure Stop;
    property Active: Boolean read FActive write SetActive;
    property Interval: Integer read FInterval write SetInterval;
    property Imgbmp: TBitmap read FImgbmp write FImgbmp;
    property ImageList: TImageList read FImageList write SetImageList;
    //Property Image:TImage Read FImage Write SetImage;
    property Image: TCutline read FImage write SetImage;

    //Property showPic:TShowPicture Read FshowPic;
    end;

    implementation

    uses
    CommonU, DbugIntf;

    { TXPImage }

    constructor TXPImage.Create(AOwner: TComponent);
    begin
    inherited;
    FInterval := 800;
    FImgbmp := TBitmap.Create;
    //FImage := TCutline.Create(AOwner);
    //FImageList := TImageList.Create(AOwner);
    //FTimer := TTimer.Create(AOwner);
    //FImage := TImage.Create(AOwner);
    end;

    destructor TXPImage.Destroy;
    begin
    if Assigned(FImgbmp) then
    FImgbmp.Free;
    //FTimer.Free;
    //FImage.Free;
    //FImageList.Free;
    inherited;
    end;

    procedure TXPImage.SetActive(Value: Boolean);
    begin
    FActive := Value;
    if (FshowPic <> nil) and Value then
    FshowPic := TShowPicture.Create(Self)
    else
    FshowPic.Terminate;
    end;

    procedure TXPImage.SetImageList(Value: TImageList);
    begin
    FImageList := Value;
    end;

    procedure TXPImage.SetInterval(Value: Integer);
    begin
    FInterval := value;
    end;

    procedure TXPImage.SetImage(Value: TCutline);
    begin
    FImage := Value;
    end;

    procedure TXPImage.Start;
    begin
    FActive := true;
    //創建線程
    FshowPic := TShowPicture.Create(Self);
    //FshowPic.Resume;
    end;

    procedure TXPImage.Stop;
    begin
    //FActive:= false;
    if FshowPic <> nil then
    begin
    FshowPic.Terminate;
    FshowPic := nil;
    end;
    end;

    {procedure TXPImage.Continue;
    begin
    IF FshowPic<> nil then
    begin
    FActive:= true;
    FshowPic.Resume;
    end;
    end;

    procedure TXPImage.Pause;
    begin
    IF FshowPic<> nil then
    FActive:= false;
    end;}

    { TShowPicture }

    constructor TShowPicture.Create(Aowner: TXPImage);
    begin
    inherited Create(false);
    FItem := Aowner;
    Fidx := 0;
    FreeOnTerminate := true;
    end;

    procedure TShowPicture.Execute;
    //var
    // nTickCount: Cardinal;
    begin
    inherited;
    while not Terminated do
    begin
    if FItem.Active then
    begin
    //Application.ProcessMessages;
    synchronize(SetPicture); {注意此處}
    Fidx := Fidx + 1;
    if Fidx >= FItem.FImageList.Count then
    Fidx := 0;
    if terminated then
    exit;
    //Item.;
    Sleep(FItem.FInterval);

    // nTickCount := GetTickCount;
    // while FItem.Active and (GetTickCount - nTickCount < FItem.FInterval) do
    // Application.ProcessMessages;
    end
    else
    begin
    Suspend;
    end;
    end;
    end;

    procedure TShowPicture.SetPicture;
    var
    sMsg: string;
    begin

    //SendMethodEnter(Format('“%s” 播放動畫中的設置圖片', [FItem.Image.Caption]));
    if FItem.Imgbmp <> nil then
    begin
    try
    //SendDebug('開始從 Imagelist 中獲取圖片');
    FItem.FImageList.GetBitmap(Fidx, FItem.Imgbmp);
    //SendDebug('完成從 Imagelist 中獲取圖片');
    //FItem.FImageList.GetBitmap(Fidx,FItem.FImage.Picture.Bitmap);
    //SendDebug('開始從把圖片給 Cutline 圖片');
    FItem.Image.SetImage(FItem.Imgbmp);
    //SendDebug('完成從把圖片給 Cutline 圖片');
    //SendDebug('開始刷新 Cutline');
    //FItem.FImage.Refresh;
    //SendDebug('完成刷新 Cutline');
    application.ProcessMessages;
    except
    on E: Exception do
    begin
    sMsg := Format('錯誤位置:[%s] 類:[%s] 名稱:[%s] 錯誤類:[%s] 錯誤信息:[%s]',
    ['播放動畫' ,ClassName, FItem.Image.Caption, E.ClassName, E.Message]);
    SendDebugEx(sMsg, mtError);
    WriteLog(sMsg);
    end;
    end;
    end;
    //SendMethodExit(Format('“%s” 播放動畫中的設置圖片', [FItem.Image.Caption]));
    //SendSeparator;

    end;

    end.

    posted on 2006-09-21 12:45 pengyi 閱讀(755) 評論(2)  編輯  收藏 所屬分類: Delphi專區

    FeedBack:
    # re: 用delphi編寫圖片播放組件 2007-04-04 22:28 Ken.xu
    好象缺少了一個東西TCutline,TCutline是啥東西啊?  回復  更多評論
      
    # re: 用delphi編寫圖片播放組件[未登錄] 2007-04-09 17:21 pengyi
    其實就是一個image,你用一個image替換就ok。  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品成人久久| 亚洲亚洲人成综合网络| 美女啪啪网站又黄又免费| 免费看小12萝裸体视频国产| 又大又硬又粗又黄的视频免费看 | 久久青青草原亚洲av无码| 久久不见久久见免费视频7| 亚洲入口无毒网址你懂的| 可以免费观看的一级毛片| 免费观看在线禁片| 亚洲精品国产高清在线观看| 亚洲人成无码网站| 成年人免费观看视频网站| 一级毛片在线免费看| 日韩在线一区二区三区免费视频 | 日韩内射激情视频在线播放免费| 亚洲AV无码AV吞精久久| 久久亚洲国产成人亚| 免费大片黄手机在线观看| 国产1024精品视频专区免费| 一级毛片在线免费播放| 亚洲精品无码av片| 亚洲大香人伊一本线| 亚洲毛片αv无线播放一区| 国产a不卡片精品免费观看| 午夜性色一区二区三区免费不卡视频 | 一个人免费观看视频在线中文| 亚洲娇小性色xxxx| 亚洲三级在线播放| 亚洲欧洲日产专区| 亚洲嫩草影院在线观看| 亚洲日本国产精华液| 亚洲欧洲国产经精品香蕉网| 亚洲AV日韩AV天堂一区二区三区| 亚洲一区二区三区在线视频| 亚洲精品麻豆av| 曰韩亚洲av人人夜夜澡人人爽| 亚洲一级特黄大片在线观看| 亚洲人成国产精品无码| 亚洲综合网站色欲色欲| 亚洲人成网www|