delphi中VCL一些bug的补丁修复包VCLfixpack介绍

delphi本身就存在问题,现在又不维护了,所以有时候用到控件的时候就不知道怎么办了。

现在知道了一个delphi的补丁包,感觉不错,拿出来分享一下。

下载地址:http://download.csdn.net/detail/sushengmiyan/4637884

拿一个修复的例子来说吧:看代码

{$IF CompilerVersion < 20.0} // Delphi 6-2007
  {$DEFINE ControlResizeFix}
  { The OPTIMIZED_RESIZE_REDRAW option is experimental. It speeds up the resizing of forms
    by not redrawing each control when it is realigned but by invalidating them all after
    one align round is done. }
  {.$DEFINE OPTIMIZED_RESIZE_REDRAW}
{$IFEND}

implementation

{$IF CompilerVersion >= 18.0}
 {$DEFINE DELPHI2006_UP}
{$IFEND}
{$IF CompilerVersion >= 17.0}
 {$DEFINE DELPHI2005_UP}
{$IFEND}

uses
  Windows, Messages, SysUtils, Classes, TypInfo, ActnList, SysConst,
  {$IFDEF ObjAutoDEPFix}
  ObjAuto,
  {$ENDIF ObjAutoDEPFix}
  {$IF CompilerVersion >= 15.0}
  Themes,
  {$IFEND}
  {$IF CompilerVersion >= 20.0}
  Character,
  {$IFEND}
  {$IFDEF VCLFIXPACK_DB_SUPPORT}
  DB, DBClient, DBGrids, DBCtrls,
  {$ENDIF VCLFIXPACK_DB_SUPPORT}
  Graphics, Controls, Forms, Dialogs, StdCtrls, Grids, ComCtrls, Buttons,
  CommCtrl;

{ ---------------------------------------------------------------------------- }
{ Helper functions, shared }
type
  TOpenWinControl = class(TWinControl);
  TOpenCustomForm = class(TCustomForm);
  TOpenCommonDialog = class(TCommonDialog);
  TOpenCustomActionList = class(TCustomActionList);
  TOpenComponent = class(TComponent);
  TOpenCustomCombo = class(TCustomCombo);

  TJumpOfs = Integer;
  PPointer = ^Pointer;

type
  PXRedirCode = ^TXRedirCode;
  TXRedirCode = packed record
    Jump: Byte;
    Offset: TJumpOfs;
  end;

  PWin9xDebugThunk = ^TWin9xDebugThunk;
  TWin9xDebugThunk = packed record
    PUSH: Byte;
    Addr: Pointer;
    JMP: TXRedirCode;
  end;

  PAbsoluteIndirectJmp = ^TAbsoluteIndirectJmp;
  TAbsoluteIndirectJmp = packed record
    OpCode: Word;   //$FF25(Jmp, FF /4)
    Addr: PPointer;
  end;

{ Hooking }

function GetActualAddr(Proc: Pointer): Pointer;

  function IsWin9xDebugThunk(AAddr: Pointer): Boolean;
  begin
    Result := (AAddr <> nil) and
              (PWin9xDebugThunk(AAddr).PUSH = $68) and
              (PWin9xDebugThunk(AAddr).JMP.Jump = $E9);
  end;

begin
  if Proc <> nil then
  begin
    if (Win32Platform <> VER_PLATFORM_WIN32_NT) and IsWin9xDebugThunk(Proc) then
      Proc := PWin9xDebugThunk(Proc).Addr;
    if (PAbsoluteIndirectJmp(Proc).OpCode = $25FF) then
      Result := PAbsoluteIndirectJmp(Proc).Addr^
    else
      Result := Pro
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi FFMpeg VCL Components是一套用于在Delphi环境下使用FFMpeg多媒体框架的可视化控件。FFMpeg是一个开源的多媒体处理库,可以对音频和视频进行解码、转码、编码和处理。Delphi FFMpeg VCL Components则是基于此库封装的一系列控件,简化了在Delphi使用FFMpeg的过程。 使用Delphi FFMpeg VCL Components可以方便地在Delphi应用程序实现音视频的播放、转码和处理功能。它提供了多个控件,例如FFMpegPlayer,用于播放音视频文件;FFMpegEncoder,用于将音视频文件转码为其他格式;FFMpegFilters,用于添加特效和滤镜等。 通过使用Delphi FFMpeg VCL Components,开发者可以快速地实现各种音视频处理需求。比如可以将一个视频文件转码为其他格式,以适配不同的播放设备;也可以对音频文件进行处理,比如提取音频片段、混音等。 这些控件在Delphi的使用非常简单,开发者只需要将相应的控件拖放到窗体上,并进行相应的配置,即可实现相应的功能。对于那些对FFMpeg有所了解的开发者来说,使用Delphi FFMpeg VCL Components可以大大简化开发过程,提高开发效率。 总之,Delphi FFMpeg VCL Components为Delphi开发者提供了强大的音视频处理功能,使得他们能够更加轻松地实现各种复杂的音视频处理需求。无论是开发一个视频编辑器、音频播放器,还是实现其他音视频相关功能,使用Delphi FFMpeg VCL Components都是一个很好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值