亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gifimage.pas

?? 是Delphi的界面控件
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
    procedure SetBounds(Index: integer; Value: WORD);
    function GetCharWidthHeight(Index: integer): BYTE;
    procedure SetCharWidthHeight(Index: integer; Value: BYTE);
    function GetColorIndex(Index: integer): BYTE;
    procedure SetColorIndex(Index: integer; Value: BYTE);
  public
    constructor Create(ASubImage: TGIFSubImage); override;
    destructor Destroy; override;
    procedure SaveToStream(Stream: TStream); override;
    procedure LoadFromStream(Stream: TStream); override;
    property Left: WORD index 1 read GetBounds write SetBounds;
    property Top: WORD index 2 read GetBounds write SetBounds;
    property GridWidth: WORD index 3 read GetBounds write SetBounds;
    property GridHeight: WORD index 4 read GetBounds write SetBounds;
    property CharWidth: BYTE index 1 read GetCharWidthHeight write SetCharWidthHeight;
    property CharHeight: BYTE index 2 read GetCharWidthHeight write SetCharWidthHeight;
    property ForegroundColorIndex: BYTE index 1 read GetColorIndex write SetColorIndex;
    property ForegroundColor: TColor read GetForegroundColor;
    property BackgroundColorIndex: BYTE  index 2 read GetColorIndex write SetColorIndex;
    property BackgroundColor: TColor read GetBackgroundColor;
    property Text: TStrings read FText write FText;
  end;

////////////////////////////////////////////////////////////////////////////////
//
//                      TGIFCommentExtension
//
////////////////////////////////////////////////////////////////////////////////
  TGIFCommentExtension = class(TGIFExtension)
  private
    FText		: TStrings;
  protected
    function GetExtensionType: TGIFExtensionType; override;
  public
    constructor Create(ASubImage: TGIFSubImage); override;
    destructor Destroy; override;
    procedure SaveToStream(Stream: TStream); override;
    procedure LoadFromStream(Stream: TStream); override;
    property Text: TStrings read FText;
  end;

////////////////////////////////////////////////////////////////////////////////
//
//                      TGIFApplicationExtension
//
////////////////////////////////////////////////////////////////////////////////
  TGIFIdentifierCode = array[0..7] of char;
  TGIFAuthenticationCode = array[0..2] of char;
  TGIFApplicationRec = packed record
    Identifier		: TGIFIdentifierCode;
    Authentication	: TGIFAuthenticationCode;
  end;

  TGIFApplicationExtension = class;
  TGIFAppExtensionClass = class of TGIFApplicationExtension;

  TGIFApplicationExtension = class(TGIFExtension)
  private
    FIdent		: TGIFApplicationRec;
    function GetAuthentication: string;
    function GetIdentifier: string;
  protected
    function GetExtensionType: TGIFExtensionType; override;
    procedure SetAuthentication(const Value: string);
    procedure SetIdentifier(const Value: string);
    procedure SaveData(Stream: TStream); virtual; abstract;
    procedure LoadData(Stream: TStream); virtual; abstract;
  public
    constructor Create(ASubImage: TGIFSubImage); override;
    destructor Destroy; override;
    procedure SaveToStream(Stream: TStream); override;
    procedure LoadFromStream(Stream: TStream); override;
    class procedure RegisterExtension(eIdent: TGIFApplicationRec; eClass: TGIFAppExtensionClass);
    class function FindSubExtension(Stream: TStream): TGIFExtensionClass; override;
    property Identifier: string read GetIdentifier write SetIdentifier;
    property Authentication: string read GetAuthentication write SetAuthentication;
  end;

////////////////////////////////////////////////////////////////////////////////
//
//                      TGIFUnknownAppExtension
//
////////////////////////////////////////////////////////////////////////////////
  TGIFBlock = class(TObject)
  private
    FSize		: BYTE;
    FData		: pointer;
  public
    constructor Create(ASize: integer);
    destructor Destroy; override;
    procedure SaveToStream(Stream: TStream);
    procedure LoadFromStream(Stream: TStream);
    property Size: BYTE read FSize;
    property Data: pointer read FData;
  end;

  TGIFUnknownAppExtension = class(TGIFApplicationExtension)
  private
    FBlocks		: TList;
  protected
    procedure SaveData(Stream: TStream); override;
    procedure LoadData(Stream: TStream); override;
  public
    constructor Create(ASubImage: TGIFSubImage); override;
    destructor Destroy; override;
    property Blocks: TList read FBlocks;
  end;

////////////////////////////////////////////////////////////////////////////////
//
//                      TGIFAppExtNSLoop
//
////////////////////////////////////////////////////////////////////////////////
  TGIFAppExtNSLoop = class(TGIFApplicationExtension)
  private
    FLoops		: WORD;
    FBufferSize		: DWORD;
  protected
    procedure SaveData(Stream: TStream); override;
    procedure LoadData(Stream: TStream); override;
  public
    constructor Create(ASubImage: TGIFSubImage); override;
    property Loops: WORD read FLoops write FLoops;
    property BufferSize: DWORD read FBufferSize write FBufferSize;
  end;

////////////////////////////////////////////////////////////////////////////////
//
//                      TGIFImage
//
////////////////////////////////////////////////////////////////////////////////
  TGIFImageList = class(TGIFList)
  protected
    function GetImage(Index: Integer): TGIFSubImage;
    procedure SetImage(Index: Integer; SubImage: TGIFSubImage);
  public
    procedure LoadFromStream(Stream: TStream; Parent: TObject); override;
    procedure SaveToStream(Stream: TStream); override;
    property SubImages[Index: Integer]: TGIFSubImage read GetImage write SetImage; default;
  end;

  // Compression algorithms
  TGIFCompression =
    (gcLZW,			// Normal LZW compression
     gcRLE			// GIF compatible RLE compression
    );

  // Color reduction methods
  TColorReduction =
    (rmNone,			// Do not perform color reduction
     rmWindows20,		// Reduce to the Windows 20 color system palette
     rmWindows256,		// Reduce to the Windows 256 color halftone palette (Only works in 256 color display mode)
     rmWindowsGray,		// Reduce to the Windows 4 grayscale colors
     rmMonochrome,		// Reduce to a black/white monochrome palette
     rmGrayScale,		// Reduce to a uniform 256 shade grayscale palette
     rmNetscape,		// Reduce to the Netscape 216 color palette
     rmQuantize,		// Reduce to optimal 2^n color palette
     rmQuantizeWindows,		// Reduce to optimal 256 color windows palette
     rmPalette			// Reduce to custom palette
    );
  TDitherMode =
    (dmNearest,			// Nearest color matching w/o error correction
     dmFloydSteinberg,		// Floyd Steinberg Error Diffusion dithering
     dmStucki,			// Stucki Error Diffusion dithering
     dmSierra,			// Sierra Error Diffusion dithering
     dmJaJuNI,			// Jarvis, Judice & Ninke Error Diffusion dithering
     dmSteveArche,		// Stevenson & Arche Error Diffusion dithering
     dmBurkes			// Burkes Error Diffusion dithering
     // dmOrdered,		// Ordered dither
    );

  // Optimization options
  TGIFOptimizeOption =
    (ooCrop,			// Crop animated GIF frames
     ooMerge,			// Merge pixels of same color
     ooCleanup,			// Remove comments and application extensions
     ooColorMap,		// Sort color map by usage and remove unused entries
     ooReduceColors		// Reduce color depth ***NOT IMPLEMENTED***
    );
  TGIFOptimizeOptions = set of TGIFOptimizeOption;

  TGIFDrawOption =
    (goAsync,			// Asyncronous draws (paint in thread)
     goTransparent,		// Transparent draws
     goAnimate,			// Animate draws
     goLoop,			// Loop animations
     goLoopContinously,		// Ignore loop count and loop forever
     goValidateCanvas,		// Validate canvas in threaded paint ***NOT IMPLEMENTED***
     goDirectDraw,		// Draw() directly on canvas
     goClearOnLoop,		// Clear animation on loop
     goTile,			// Tiled display
     goDither,			// Dither to Netscape palette
     goAutoDither		// Only dither on 256 color systems
    );
  TGIFDrawOptions = set of TGIFDrawOption;
  // Note: if goAsync is not set then goDirectDraw should be set. Otherwise
  // the image will not be displayed.

  PGIFPainter = ^TGIFPainter;

  TGIFPainter = class(TThread)
  private
    FImage		: TGIFImage;	// The TGIFImage that owns this painter
    FCanvas		: TCanvas;	// Destination canvas
    FRect		: TRect;	// Destination rect
    FDrawOptions	: TGIFDrawOptions;// Paint options
    FAnimationSpeed	: integer;	// Animation speed %
    FActiveImage	: integer;	// Current frame
    Disposal		,		// Used by synchronized paint
    OldDisposal		: TDisposalMethod;// Used by synchronized paint
    BackupBuffer	: TBitmap;	// Used by synchronized paint
    FrameBuffer		: TBitmap;	// Used by synchronized paint
    Background		: TBitmap;	// Used by synchronized paint
    ValidateDC		: HDC;
    DoRestart		: boolean;	// Flag used to restart animation
    FStarted		: boolean;	// Flag used to signal start of paint
    PainterRef		: PGIFPainter;	// Pointer to var referencing painter
    FEventHandle	: THandle;	// Animation delay event
    ExceptObject	: Exception;	// Eaten exception
    ExceptAddress	: pointer;	// Eaten exceptions address
    FEvent		: TNotifyEvent;	// Used by synchronized events
    FOnStartPaint	: TNotifyEvent;
    FOnPaint		: TNotifyEvent;
    FOnAfterPaint	: TNotifyEvent;
    FOnLoop		: TNotifyEvent;
    FOnEndPaint		: TNotifyEvent;
    procedure DoOnTerminate(Sender: TObject);// Sync. shutdown procedure
    procedure DoSynchronize(Method: TThreadMethod);// Conditional sync stub
{$ifdef SERIALIZE_RENDER}
    procedure PrefetchBitmap;		// Sync. bitmap prefetch
{$endif}
    procedure DoPaintFrame;		// Sync. buffered paint procedure
    procedure DoPaint;			// Sync. paint procedure
    procedure DoEvent;
    procedure SetActiveImage(const Value: integer);// Sync. event procedure
  protected
    procedure Execute; override;
    procedure SetAnimationSpeed(Value: integer);
  public
    constructor Create(AImage: TGIFImage; ACanvas: TCanvas; ARect: TRect;
      Options: TGIFDrawOptions);
    constructor CreateRef(Painter: PGIFPainter; AImage: TGIFImage; ACanvas: TCanvas; ARect: TRect;
      Options: TGIFDrawOptions);
    destructor Destroy; override;
    procedure Start;
    procedure Stop;
    procedure Restart;
    property Image: TGIFImage read FImage;
    property Canvas: TCanvas read FCanvas;
    property Rect: TRect read FRect write FRect;
    property DrawOptions: TGIFDrawOptions read FDrawOptions write FDrawOptions;
    property AnimationSpeed: integer read FAnimationSpeed write SetAnimationSpeed;
    property Started: boolean read FStarted;
    property ActiveImage: integer read FActiveImage write SetActiveImage;
    property OnStartPaint: TNotifyEvent read FOnStartPaint write FOnStartPaint;
    property OnPaint: TNotifyEvent read FOnPaint write FOnPaint;
    property OnAfterPaint: TNotifyEvent read FOnAfterPaint write FOnAfterPaint;
    property OnLoop: TNotifyEvent read FOnLoop write FOnLoop;
    property OnEndPaint	: TNotifyEvent read FOnEndPaint	 write FOnEndPaint	;
    property EventHandle: THandle read FEventHandle;
  end;

  TGIFWarning = procedure(Sender: TObject; Severity: TGIFSeverity; Message: string) of object;

  TGIFImage = class(TGraphic)
  private
    IsDrawing		: Boolean;
    IsInsideGetPalette	: boolean;
    FImages		: TGIFImageList;
    FHeader		: TGIFHeader;
    FGlobalPalette	: HPalette;
    FPainters		: TThreadList;
    FDrawOptions	: TGIFDrawOptions;
    FColorReduction	: TColorReduction;
    FReductionBits	: integer;
    FDitherMode		: TDitherMode;
    FCompression	: TGIFCompression;
    FOnWarning		: TGIFWarning;
    FBitmap		: TBitmap;
    FDrawPainter	: TGIFPainter;
    FThreadPriority	: TThreadPriority;
    FAnimationSpeed	: integer;
    FForceFrame: Integer;  // 2004.03.09
    FDrawBackgroundColor: TColor;
    FOnStartPaint	: TNotifyEvent;
    FOnPaint		: TNotifyEvent;
    FOnAfterPaint	: TNotifyEvent;
    FOnLoop		: TNotifyEvent;
    FOnEndPaint		: TNotifyEvent;
{$IFDEF VER9x}
    FPaletteModified	: Boolean;
    FOnProgress		: TProgressEvent;
{$ENDIF}
    function GetAnimate: Boolean;  // 2002.07.07
    procedure SetAnimate(const Value: Boolean);  // 2002.07.07
    procedure SetForceFrame(const Value: Integer);  // 2004.03.09
  protected
    // Obsolete: procedure Changed(Sender: TObject); {$IFDEF VER9x} virtual; {$ELSE} override; {$ENDIF}
    function GetHeight: Integer; override;
    procedure SetHeight(Value: Integer); override;
    function GetWidth: Integer; override;
    procedure SetWidth(Value: Integer); override;
    procedure AssignTo(Dest: TPersistent); override;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品二区一区二区aⅴ污介绍| 99re这里只有精品首页| 国产做a爰片久久毛片 | 国产精品亲子伦对白| 一区二区三区在线观看动漫| 国产精品一区二区在线播放 | 亚洲少妇中出一区| 精品一区二区三区在线视频| 欧美午夜宅男影院| 中文字幕制服丝袜成人av| 久久99精品久久久久久久久久久久| 91麻豆国产福利精品| 国产欧美日韩不卡免费| 韩国成人在线视频| 日韩亚洲欧美成人一区| 亚洲午夜日本在线观看| 93久久精品日日躁夜夜躁欧美| 久久精子c满五个校花| 久久99国内精品| 日韩欧美国产综合| 日本不卡中文字幕| 在线电影院国产精品| 亚洲成人三级小说| 欧美日韩aaaaa| 天堂精品中文字幕在线| 欧美少妇bbb| 亚洲国产中文字幕| 欧美日韩国产精品自在自线| 一区二区三区中文免费| 91免费在线视频观看| 亚洲特黄一级片| 91在线一区二区| 亚洲人成精品久久久久| 99精品欧美一区二区蜜桃免费| 中文字幕乱码久久午夜不卡 | 国产精品久久精品日日| 成人网在线播放| 成人欧美一区二区三区在线播放| 成人h动漫精品| 亚洲视频一区二区在线| 91福利视频网站| 日本成人在线视频网站| 日韩你懂的在线观看| 国产精品77777竹菊影视小说| 国产欧美一区二区精品婷婷 | 国产精品影音先锋| 久久精品男人天堂av| eeuss鲁片一区二区三区在线看| 国产精品国产馆在线真实露脸| 91毛片在线观看| 亚洲成av人片在线| 精品999在线播放| 不卡一区二区中文字幕| 夜夜操天天操亚洲| 日韩一级欧美一级| 粉嫩aⅴ一区二区三区四区 | 欧美激情自拍偷拍| 91免费视频观看| 日本免费在线视频不卡一不卡二| 久久久久久免费毛片精品| 成人91在线观看| 日日欢夜夜爽一区| 久久精品人人做人人爽97| 欧美性xxxxxxxx| 国产在线一区二区| 亚洲精选在线视频| 日韩情涩欧美日韩视频| 99精品视频在线免费观看| 性久久久久久久久久久久| 久久久久高清精品| 欧美日韩视频不卡| www.日韩精品| 日本不卡一区二区三区高清视频| 国产精品欧美一级免费| 欧美精品黑人性xxxx| www.欧美.com| 六月婷婷色综合| 夜夜亚洲天天久久| 国产精品乱子久久久久| 这里只有精品视频在线观看| 成人午夜免费av| 久久精品国产亚洲a| 亚洲欧美一区二区三区极速播放| 欧美成人欧美edvon| 欧美午夜精品一区二区三区| 成人性色生活片| 久草在线在线精品观看| 婷婷六月综合网| 亚洲免费高清视频在线| 亚洲国产岛国毛片在线| 日韩欧美一二三| 欧美日韩视频在线第一区 | 亚洲不卡av一区二区三区| 国产人伦精品一区二区| 欧美高清hd18日本| 欧美在线视频全部完| 99久久伊人精品| 成人免费av资源| 国产不卡在线一区| 国产永久精品大片wwwapp| 日本一不卡视频| 婷婷丁香激情综合| 午夜视频在线观看一区| 亚洲成人你懂的| 亚洲国产精品一区二区久久恐怖片 | 欧美激情自拍偷拍| 久久久久久久综合| 久久影院午夜论| 久久亚洲捆绑美女| 久久久久久久电影| 欧美国产一区视频在线观看| 久久麻豆一区二区| 久久亚洲综合色| 欧美国产日本韩| 中文字幕一区二区在线播放 | 成年人午夜久久久| 成人h动漫精品一区二区| 不卡视频一二三四| 91色视频在线| 欧洲国内综合视频| 欧美日韩久久一区| 日韩亚洲欧美综合| 欧美tickling挠脚心丨vk| 精品国产髙清在线看国产毛片| 精品国产乱码久久久久久浪潮| 久久先锋影音av| 国产精品国产馆在线真实露脸| 亚洲男人天堂av网| 亚洲一区二区三区中文字幕在线| 亚洲丶国产丶欧美一区二区三区| 亚洲成人tv网| 精品一区二区影视| 9i在线看片成人免费| 在线观看一区二区视频| 538在线一区二区精品国产| 在线不卡a资源高清| 精品久久久网站| 亚洲欧洲日韩在线| 亚洲永久免费av| 国产又粗又猛又爽又黄91精品| av一区二区三区四区| 欧美三级中文字| 欧美精品一区视频| 一区二区三区日本| 久久成人18免费观看| eeuss鲁片一区二区三区| 欧美日韩国产免费一区二区 | 性做久久久久久免费观看| 老司机精品视频在线| 成人黄色国产精品网站大全在线免费观看| 成人99免费视频| 日韩精品一区二区三区在线观看 | 中文字幕乱码亚洲精品一区| 一区二区国产视频| 久久91精品久久久久久秒播| 色综合久久中文综合久久97| 欧美福利一区二区| 亚洲欧美一区二区在线观看| 日本欧美一区二区在线观看| www..com久久爱| 欧美一级黄色片| 亚洲精品写真福利| 国产成人综合视频| 欧美精品123区| 亚洲丝袜另类动漫二区| 国产曰批免费观看久久久| 精品视频资源站| 中文字幕亚洲一区二区av在线| 免费在线观看一区| 欧美专区日韩专区| 中文字幕在线一区| 精品一区二区精品| 91.麻豆视频| 亚洲精品乱码久久久久久久久| 国产一区二区调教| 欧美一区中文字幕| 亚洲小少妇裸体bbw| 99国产精品久久久久久久久久 | 亚洲欧美偷拍三级| 国产成a人亚洲精| 久久色在线观看| 日韩av一二三| 91麻豆精品久久久久蜜臀| 一区二区三区不卡在线观看| 成a人片国产精品| 国产色一区二区| 国产伦精一区二区三区| 制服丝袜在线91| 亚洲午夜久久久| 欧美视频第二页| 亚洲v精品v日韩v欧美v专区| 在线观看不卡视频| 亚洲视频一区二区在线观看| 99久久精品国产毛片| 日本一二三不卡| 91亚洲精品一区二区乱码| 亚洲品质自拍视频| 欧美性视频一区二区三区| 亚洲精品国产a久久久久久| 色狠狠一区二区三区香蕉|