![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
ghDirPath y ghInform
Aquí podemos encontrar estas tres sentencias de código:
Tal vez este no sea el caso, pero suponiendo que lo sea, he notado que suele utilizarse la función GetCurrentDir para formar una ruta de archivo relativa a la del programa ejecutable. Pero eso puede ser engañoso, porque las funciones nativas GetCurrentDir y GetCurrentDirectory no necesariamente devuelven el directorio del programa ejecutable, sino sencillamente el "directorio actual", el cual puede ser cambiado inadvertidamente por algún elemento del programa que trabaje con el sistema de archivos. Para derivar una ruta de la del programa ejecutable tenemos la función ghDirPath. Por otra parte, casi nunca es cómodo escribir o leer una llamada a la función MessageBox de la API de Windows (o al método de TApplication que lleva el mismo nombre) por lo especial de sus parámetros: Las cadenas no son de tipo String sino PChar, así que con frecuencia se recurre a moldes de tipos "PChar(Cadena)"; además primero debe indicarse el texto interior de la ventana y luego su título, cuando la lógica común de cualquier diseño es indicar primero el título de la ventana y luego su contenido; y finalmente la constantes MB_ICONXXX no son precisamente estéticas, abultan el código y restan legibilidad. ¿Existe una función sencilla de manejar que muestre un simple cuadro de texto con el icono de información? Sí, su nombre es ghInform. El anterior bloque de código quedaría así: Sólo es necesario añadir a la cláusula Uses la unidad GHFRTL (que contiene a ghDirPath) y la unidad GHFVCL (que contiene a ghInform).
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#2
|
|||
|
|||
|
Gracias por el aporte, no sabia nada al respecto (me considero un novato avanzado) ojala aporten mas ejemplos que ayudan mucho.
|
|
#3
|
||||
|
||||
|
Yo siempre he usado:
ya que lo que dice Al es muy cierto GetCurrentDir solo nos devuelve el directorio de trabajo actual y puede haber sido cambiado por la aplicación, la propiedad ExeName por otro lado, contiene todo el path completo del ejecutable se haya ejecutado de donde haya sido (inclusive una memoria USB).
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
#4
|
||||
|
||||
Alternativa: Además de ser más cortas, las segundas opciones no requieren la existencia del objeto Application (algunos programas prescinden de la unidad Forms).
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#5
|
||||
|
||||
|
Me quedo con mi solución, es cierto que requieres la unidad Forms, pero esa ya viene por defecto y el objeto Application se crea y regula automáticamente. Si ya viene con muchas otras opciones ¿Por qué no usarlo? Claro a menos que en ninguna parte de nuestro poyecto usemos la unidad citada, pero en todo caso todo se resumen e usar o no una unidad adicional (una de ellas nativa), ya sea "forms" o las de GHFreebrary. Al final en los dos casos se obtiene exactamente lo mismo.
__________________
AKA "El animalito" ||Cordobés a mucha honra|| |
|
#6
|
||||
|
||||
|
Será que me gusta mucho la brevedad del código.
![]()
__________________
Tras casi seis años de trabajar para una empresa alemana como desarrollador Delphi, se vieron forzados a dejarme ir (temas presupuestales). Así que ahora estoy abierto a escuchar nuevas ofertas. |
|
#7
|
||||
|
||||
|
A mí también.
Cada vez que tengo que usar extractfilepath o alguna función similar me da sensación de obsoleta.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Sondeo sobre la biblioteca GH Freebrary | Al González | [GH Freebrary] | 23 | 08-02-2015 21:12:03 |
| GH Freebrary para Delphi XE4 | Al González | [GH Freebrary] | 18 | 22-09-2014 18:24:04 |
| GH Freebrary para Delphi XE2 | Al González | [GH Freebrary] | 7 | 12-01-2014 08:49:35 |
| Avanzando con GH Freebrary | Al González | [GH Freebrary] | 13 | 23-03-2013 07:08:03 |
| Introducción a GH Freebrary | Al González | [GH Freebrary] | 0 | 18-03-2013 10:11:54 |
|