Delphi/Lazarus: Diferencia entre ParamStr(0) y Application.ExeName
Pregunta de Compi | 11/01/2024 a las 16:43
No hace mucho, pregunté cómo determinar la carpeta de la aplicación o la ruta a la propia aplicación respectivamente cómo obtener el nombre del archivo EXE de la propia aplicación.
Ambos se pueden resolver usando Application.ExeName y Paramstr(0).
Hasta donde tengo entendido, ParamStr(0) y Application.ExeName parecen ser iguales. ¿Pero dónde está la diferencia? ¿Y por qué necesitamos dos funciones que hagan lo mismo?
¿Y cuál de esas funciones debería usar mejor? ¿Hay ventajas o desventajas a favor de uno u otro?
Temas Relacionados
Tipos MIME de los Formatos de Archivo de Microsoft Office
Información | 0 Comentarios
Delphi/Lazarus: Determinar Carpeta de Aplicación propia
Consejo | 0 Comentarios
MySQL: Saltos de Línea en MySQL
Consejo | 0 Comentarios
Delphi/Lazarus: Mostrar Fecha y Hora actuales
Consejo | 0 Comentarios
Delphi/Lazarus: ¿Está presionada la tecla ALT, SHIFT o CTRL?
Tutorial | 0 Comentarios
Lazarus: Cargar Archivo como Array de Bytes y Guardar Array de Bytes como Archivo
Tutorial | 0 Comentarios
Delphi/Lazarus: Mostrar Array de Bytes como Cadena de Valores HEX
Consejo | 0 Comentarios
Aviso Importante
Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.
Participar
Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.
De hecho, ambas funciones son idénticas. Application.ExeName incluso llama a ParamStr(0) internamente (al menos esto se aplica a aplicaciones de Windows o Linux, Lazarus en Darwin hace un poco más).
Para Application.ExeName, debe agregar la unidad Forms para que funcione; para ParamStr(0), solo necesita la unidad System. Por lo tanto, si debe crear una aplicación sin formularios (sin interfaz gráfica de usuario / GUI), será mejor que utilice ParamStr(0) en lugar de incluir la unidad Forms solo para esa única función.
Si ya tiene incluida la unidad Forms, para Windows o Linux da igual. Sin embargo, en este caso se ahorra una llamada de función adicional si utiliza ParamStr(0). En MacOS, prefiero utilizar Application.ExeName si necesita algo del código adicional.
En caso de duda, recomendaría tomar ParamStr(0) para esa tarea.
11/01/2024 a las 20:37