delphi - propiedades - ¿Puedo generar un error de compilación personalizado? ¿Si es así, cómo?
throw exception c# (2)
Comprobar la versión de Delphi se ha vuelto fácil desde que se introdujo la directiva CONDITIONALEXPRESSIONS en Delphi 6:
program requires2010;
{$APPTYPE CONSOLE}
{$IFDEF CONDITIONALEXPRESSIONS}
{$IF CompilerVersion >= 21.0} // 21.0 is Delphi 2010
{$DEFINE DELPHI2010}
{$IFEND}
{$ENDIF}
begin
{$IFNDEF DELPHI2010}
{$MESSAGE Fatal ''Wrong Delphi Version''}
{$ENDIF}
Writeln(''Continued'');
Readln;
end.
Esto es lo que quiero hacer. Tengo un proyecto que debe compilarse en alguna versión de Delphi o posterior. Me gustaría usar una directiva de compilación condicional para probar la versión de Delphi y luego generar un error de compilación personalizado con un mensaje personalizado. Ser capaz de generar una advertencia o sugerencia de compilador personalizado también sería adecuado si un error no es posible.
Claro, podría poner un giberish no compilable en el segmento de código condicional, y eso está bien. Pero mi pregunta es "¿Puedo generar, condicionalmente, un error de compilación personalizado?"
Gracias, Johan y Serg.
Aquí está la solución y más detalles sobre el problema. Tengo una aplicación que se creó originalmente en Delphi 2007. Incluye componentes de Internet Direct para adjuntar a un servicio web. Estos usan SSL. Recientemente actualicé mis bibliotecas SSL a una versión posterior, y estas no funcionan tan bien con los componentes Indy 2007 de Delphi. Ahora agregué las siguientes directivas de compilación para garantizar que esta aplicación ya no se compile con Delphi 2007 o anterior:
{$IF CompilerVersion <= 19.0} // Delphi 2007 = 19.0
{$MESSAGE Error ''This project must be compiled in Delphi 2009 or later''}
{$IFEND}
Puedes usar:
{$Message HINT|WARN|ERROR|FATAL ''text string'' }
{$MESSAGE ''Boo!''} emits a hint
{$Message Hint ''Feed the cats''} emits a hint
{$messaGe Warn ''Looks like rain.''} emits a warning
{$Message Error ''Not implemented''} emits an error, continues compiling
{$Message Fatal ''Bang. Yer dead.''} emits an error, terminates compiler
Esto funciona en Delphi 6 y más tarde.