Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Compilador Condicional (https://www.clubdelphi.com/foros/showthread.php?t=47640)

sercornejov 03-09-2007 22:52:46

Compilador Condicional
 
Hola. Tengo una aplicación que estoy desarrollando en conjunto con un NUEVO socio. el tiene licencia de Delphi 4.0 y yo de Delphi 6.0. Cuando hago la compilacion en D6, es necsario adicionar en el uses a variants en algunos formularios y además, en donde se preguntaba si una variable es igual o diferente a NULL, el D4 es direca la pregunta:

variable=NULL o [COLOR="Blue"]variable<>null[/color]

pero en D6:

VarIsNull(variable) o not VarIsNull(variable)

Como seguimos trabajando en equipo (el se encarga de la parte contable de la aplicacion y yo de la operativa) quiero saber como usar los compiladores condicionales de delphi, que alguna vez trate de usar y no fui capaz.

Era algo así como:

$IF DELPHI4 THEN
ordenes para delphi 4
ELSE
ordenes para delphi 6

Pero no se como se usa, y en el caso de la clausula USES, como hacer par que use o no el paquete VARIANTS dependiendo de quin compila?

Gracias

xEsk 03-09-2007 23:56:13

Aquí tienes la respuesta: http://delphi.about.com/od/objectpas...mpiler_ver.htm

Saludos.

sercornejov 04-09-2007 00:13:30

Y ya!!!

Así de fácil, Así de Rápido, Así de simple, Así de efectivo. ESO ES EL CLUB DELPHI

Gracias:):):):):):):p:p

sercornejov 22-09-2007 00:37:53

ok. Otra pata que le nace al gato

Resulta que como no solo es problema de usar o no una función, sino que en el USES debe usar o no una librería, no se como usarlo, me salen problemas de compilación.

Si lo coloco en el USES inicial, me coloca unos archivos por defecto, de manera INEBITABLE, y genera error de compilación, si los coloco en el uses debajo del IMPLEMENTATION no entiende donde acaba el compilador condicional y no sabe en donde arranca el primer procedimiento.

No se que hacer:o:o:o:o

Código:

Código Delphi [-]
procedure TDmaestro.dtpesajeBeforePost(DataSet: TDataSet);
begin
{$IFDEF VAR140}
if VarIsNull(Dmaestro.dtpesajeTipo.Value) or (Dmaestro.dtpesajeTipo.Value='') then
  Dmaestro.dtpesajeTipo.Value:='1';
{$ENDIF}

{$IFDEF VAR120}
if (Dmaestro.dtpesajeTipo.Value=Null) or (Dmaestro.dtpesajeTipo.Value='') then
  Dmaestro.dtpesajeTipo.Value:='1';
{$ENDIF}
end;

en este caso, el archivo tiene en su clausula USES inicial, la que v exactamente debajo de INTERFACE el archivo variants

pero cuando la función no incluye el problema con el NULL, sino que usa una VarArrayOf, que para que sea entendido se debe colocar el archivo variant en la calusula USES. como hago???

Ayuda....:confused::confused::confused:

xEsk 22-09-2007 01:14:08

No entiendo muy bien el problema que tienes (creo que te has liado un poco al explicar el problema), pero no veo el problema en usar condiciones del compilador en el momento de declarar las units.

Ejemplo chorra:
Código Delphi [-]
uses
{$IFDEF WIN32}
  Windows,
{$ENDIF}
  SysUtils, Classes, Forms;

En este ejemplo, si se estuviera compilando en Windows añadiría la unit "Windows".

Si puedes volver a explicarlo de una forma distinta, quizás te pueda ayudar, hehe.

Saludos.


La franja horaria es GMT +2. Ahora son las 10:48:13.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi