El componente PicShow de DelphiArea requiere modificaciones para compilarse correctamente en Delphi XE y XE2. El proceso consiste en actualizar las directivas de compilación del archivo DelphiArea.inc, modernizar las cláusulas uses de las unidades principales e instalar el componente mediante un paquete nuevo.
1. Actualizar DelphiArea.inc
El archivo de configuración debe declarar los símbolos de las versiones recientes y luego desactivar los que no correspondan según la constante VERxxx detectada:
{ Opciones del compilador }
{$B-} {$R-} {$Q-} {$V-} {$T-} {$X+} {$P+} {$O+}
{$IFDEF WIN32} {$H+} {$ENDIF}
{ Partimos asumiendo soporte para versiones modernas }
{$DEFINE COMPILERXE2_UP}
{$DEFINE COMPILERXE_UP}
{$DEFINE COMPILER2010_UP}
{$DEFINE COMPILER2009_UP}
{$DEFINE COMPILER2007_UP}
{$DEFINE COMPILER2006_UP}
{$DEFINE COMPILER2005_UP}
{$DEFINE COMPILER7_UP}
{$DEFINE COMPILER6_UP}
{$DEFINE COMPILER5_UP}
{$DEFINE COMPILER4_UP}
{ Delphi XE }
{$IFDEF VER220}
{$UNDEF COMPILERXE2_UP}
{$ENDIF}
{ Delphi 2010 }
{$IFDEF VER210}
{$UNDEF COMPILERXE2_UP}
{$UNDEF COMPILERXE_UP}
{$ENDIF}
{ Delphi 2009 }
{$IFDEF VER200}
{$UNDEF COMPILERXE2_UP}
{$UNDEF COMPILERXE_UP}
{$UNDEF COMPILER2010_UP}
{$ENDIF}
{ Versiones anteriores: desactivar los símbolos correspondientes }
{$IFDEF VER185} // Delphi 2007
{$UNDEF COMPILERXE2_UP}
{$UNDEF COMPILERXE_UP}
{$UNDEF COMPILER2010_UP}
{$UNDEF COMPILER2009_UP}
{$ENDIF}
{$IFDEF VER180} // Delphi 2006
{$UNDEF COMPILERXE2_UP}
{$UNDEF COMPILERXE_UP}
{$UNDEF COMPILER2010_UP}
{$UNDEF COMPILER2009_UP}
{$UNDEF COMPILER2007_UP}
{$ENDIF}
{$IFDEF VER170} // Delphi 2005
{$UNDEF COMPILERXE2_UP}
{$UNDEF COMPILERXE_UP}
{$UNDEF COMPILER2010_UP}
{$UNDEF COMPILER2009_UP}
{$UNDEF COMPILER2007_UP}
{$UNDEF COMPILER2006_UP}
{$ENDIF}
{$IFDEF VER150} // Delphi 7
{$UNDEF COMPILERXE2_UP}
{$UNDEF COMPILERXE_UP}
{$UNDEF COMPILER2010_UP}
{$UNDEF COMPILER2009_UP}
{$UNDEF COMPILER2007_UP}
{$UNDEF COMPILER2006_UP}
{$UNDEF COMPILER2005_UP}
{$ENDIF}
Es posible eliminar las definiciones de versiones muy antiguas si el componente solo se va a usar en Delphi 7 o superior, lo que simplifica el mantenimiento del archivo.
2. Modernizar las cláusulas uses
Delphi XE introduce namespace para las unidades de la VCL. Los archivos PicShow.pas, PSEffect.pas y PSReg.pas deben actualizarse de forma similar a los sigiuentes ejemplos:
PicShow.pas
uses
Winapi.Windows, Winapi.Messages,
System.SysUtils, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs,
Vcl.Menus, Data.DB, Vcl.DBCtrls,
PSEffect;
implementation
uses
{$IFDEF GRAPHICEX} GraphicEx, {$ENDIF}
{$IFDEF COMPILER6_UP} System.Types, {$ENDIF}
{$IFDEF COMPILER2009_UP} Vcl.Imaging.PngImage, {$ENDIF}
Vcl.Imaging.JPEG,
Winapi.MMSystem;
PSEffect.pas
uses
Winapi.Windows,
System.SysUtils,
System.Classes,
Vcl.Graphics;
implementation
uses
{$IFDEF COMPILER6_UP} System.Types, {$ENDIF}
System.Math;
PSReg.pas
uses
Winapi.Windows,
System.Classes;
3. Crear e instalar el paquete
Para registrar los componentes en el IDE:
- Abre Component > Install Component.
- En Unit file name selecciona
PSReg.pas. - Elige Install into a new package y pulsa Next.
- Asigna un nombre al paquete, por ejemplo
DelphiArea, y una descripción. - Selecciona Visual Component Libray como framework.
- Añade
DesignIDE.dcpen la sección Requires del paquete. - Compila e instala el paquete.
Al finalizar, los componentes de PicShow estarán disponibles en la paleta de componentes del IDE.