Necesito obtener el equivalente en Delphi de una declaración confeccionada en C o C++.

Mi nombre es daniel, te quiero pedir un favor, la siguiente declaración esta en C o tal vez C++:
#define SOL 1
Podrías explicarme que significa o que hace, pensé que era una simple definición de una constante pero no es así, necesito obtener el equivalente el delphi.
Gracias de antemano por su gentil atención.
Atentamente.
Daniel Navia
email: [email protected]
Respuesta
1
En C o C++, la directiva:
#define puede usarse como vos ves, es decir, para usarla como una constante o si no, de la manera de Delphi (aunque te aclaro que no soy experto en C o C++, pero así por lo menos se usaba en Clipper).
En Delphi, podés usar la directiva:
{$ DEFINE algo}
Para que la compilación sea condicional. Me explico: por ejemplo, si vos querés que tu código ejecute algo dependiendo de la versión de Delphi, o si estás haciendo un programa que estás depurando y querés que un pedazo de código se ejecute sólo cuando estás desarrollando, podes poner, por ejemplo:
{$IFDEF Debug}
ShowMessage('Estoy depurando');
{$ENDIF}
Y seguís con el código.
En las opciones del proyecto (Project/Options), elegís la pestaña Directories/Conditionals y llenás el cuadro "Conditional defines", en este caso con Debug (o el nombre que le quieras dar al DEFINE).
Leé la parte de la ayuda Compiler directives o buscá directamente DEFINE en la ayuda, que ahí vas a tener de todo.
Si te sirvió, califícame en TodoExpertos. Si no, avisame y veo en qué más te puedo ayudar.
Marcelo

1 respuesta más de otro experto

Respuesta
1
Directiva #define:
La directiva "#define", sirve para definir macros. Esto suministra un sistema para la sustitución de palabras, con y sin parámetros.
Sintaxis:
#define identificador_de_macro <secuencia>
El preprocesador sustituirá cada ocurrencia del identificador_de_macro en el fichero fuente, por la secuencia con algunas excepciones. Cada sustitución se conoce como una expansión de la macro. La secuencia es llamada a menudo cuerpo de la macro.
Si la secuencia no existe, el identificador_de_macro será eliminado cada vez que aparezca en el fichero fuente.
Después de cada expansión individual, se vuelve a examinar el texto expandido a la búsqueda de nuevas macros, que serán expandidas a su vez. Esto permite la posibilidad de hacer macros anidadas. Si la nueva expansión tiene la forma de una directiva de preprocesador, no será reconocida como tal.
Existen otras restricciones a la expansión de macros:
Las ocurrencias de macros dentro de literales, cadenas, constantes alfanuméricas o comentarios no serán expandidas.
Una macro no será expandida durante su propia expansión, así #define A A, no será expandida indefinidamente.
No es necesario añadir un punto y coma para terminar una directiva de preprocesador. Cualquier carácter que se encuentre en una secuencia de macro, incluido el punto y coma, aparecerá en la expansión de la macro. La secuencia termina en el primer retorno de línea encontrado. Las secuencias de espacios o comentarios en la secuencia, se expandirán como un único espacio.
En el ejemplo que me pones estas definiendo una constante. La Equivalencia en delphi (no se sobre este lenguaje mucho) seria definir una constante, y si utilizas #define con una "funcion" pues la solución podría ser crear un función. Operativamente es hará lo mismo.
Hola, te agradezco por tu gentileza y la explicación del tema que te consulte, no tenia una idea muy clara de lo que significaba esa linea de código, ahora ya puede intentar una de las cosas que me sugieres, gracias nuevamente y sera hasta una próxima oportunidad.
Atentamente.
Daniel Navia.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas