FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Leer *.Ini desde la Unidad de proyecto (*.dpr))
Hey puedo leer un archivo ini desde cualquier unidad de mi proyecto pero yo quiero obtener algunos datos desde mi unidad de proyecto, como hago para leer un valor del ini desde ahi. Yo lo intente asi:
Código:
program SCLClientePro; uses Forms, Utime in 'Utime.pas' {Foprincipal}, Inifiles; var config:Tinifiles; x:boolean;dir:string; {$R *.RES} begin Application.Initialize; dir:=extractfiledir(application.ExeName); Config:=Tinifile.Create(dir+'\Configuracion.ini'); x:=Config.Readbool ('VENTANA INICIO','VALOR',FALSE); if x then begin Foinicio:=TFoinicio.Create(application); if foinicio.ShowModal<>1 then Application.Terminate; foinicio.Free; end; //if config.Free; Application.CreateForm(TFoprincipal, Foprincipal); Application.Run; end.
__________________
Powered by Gel |
#2
|
||||
|
||||
Hola,
Incluye la unidad "IniFiles" en la cláusula "Uses". |
#3
|
||||
|
||||
ya la inclui en la clausula Uses
Ya la inclui en la clausula Uses, si ves vien el codigo ahi esta.
Código:
uses Forms, Utime in 'Utime.pas' {Foprincipal}, Inifiles; uses Inifiles, Forms, Utime in 'Utime.pas' {Foprincipal}; [/code] y nada.
__________________
Powered by Gel |
#4
|
||||
|
||||
Hola,
Disculpa, llevas razón, no me había fijado lo suficiente en el código. Acaso halla influido en mi ceguera el que no utilizases las etiquetas "DELPHI" sino las etiquetas "CODE". Pero bueno, fuera como fuera, ahí estaba la unidad "IniFiles". Dos cosas me extrañan: haciendo pruebas no encuentro problemas para leer un archivo "ini" ni tampoco para escribir en el mismo. Por otro lado me extraña que puedas usar la función "ExtractFileDir"... puesto que (si he visto bien) no incluyes la unidad "SysUtils" en donde está declarada... Por otro lado encuentro en el código ciertas instrucciones un tanto confusas... por ejemplo: Ahora mismo no recuerdo si es posible que "ShowModal" devuelva "1", pero, en todo caso, un "Application.Terminate" ahí, ¿no dejaría el resto de instrucciones sin ejecutarse? Me refiero sobre todo a las encargadas de liberar recursos, como "Config.Free". No lo sé. De cualquier modo, ya digo, no encuentro problemas para leer y escribir de y en un archivo "ini" desde el archivo de proyecto, o sea, desde el archivo "dpr"... ¿Todavía sigues sin poder hacerlo o quizás ya diste con el problema? Última edición por dec fecha: 29-07-2005 a las 04:18:13. Razón: (corrección del texto) |
#5
|
||||
|
||||
ok estoy haciendo pruebas.
Ok tiense razon en algunas cosas lo que pasa es que estoy haciendo pruebas con ese codigo y nada mas queria saber si se podia leer el ini desde ahi. y no he depurado bien el codigo ese.
postea como lo harias tu en el *.dpr con un ejemplo sencillo me interesa ver donde pones las units extras q utilizara el proyecto en *.dpr Ese codigo me esta dando errores por todo lo que mencionastes anteriormente no mas estoy probando. y lo del codigo de delphi pues no se como insertar aqui codigo delphi me disculpas si me dijeras como seria bueno. Código:
if foinicio.ShowModal<>1 then Application.Terminate;
__________________
Powered by Gel |
#6
|
||||
|
||||
Hola,
Respecto de las etiquetas para incluir código Delphi estas son [ DELPHI ] y [ /DELPHI ] (sin los espacios en blanco). Como usuario registrado que eres puedes editar tus mensajes: lo digo por si quieres cambiar el código fuente de más arriba para incluirlo dentro de las oportunas etiquetas. Por otro lado echa un vistazo al archivo adjunto a ver qué te parece la solución que daría yo al asunto que nos ocupa, no obstante guardarme la posibilidad de realizar algún que otro cambio siempre que se considerase oportuno. Cita:
Sin embargo, estarás conmigo en que es bastante más intuitivo y sencillo leer:
Última edición por dec fecha: 29-07-2005 a las 04:16:37. Razón: (ampliación del texto) |
#7
|
||||
|
||||
Yo dejaría tranquilo el archivo .dpr y haría las comprobaciones en el OnCreate de Foprincipal.
Si acaso procede, puedes usar Application.ShowMainForm := false; para ocultar la ventana principal y validar las opciones. Application.Initialize; Application.Run; Junto con Application.Terminate, puede producir efectos colaterales, que, en principio, son dificiles de localizar. No debe haber problemas en crear Foprincipal, y justo en el Oncreate, verificar el archivo ini, y usar Application.Terminate allí mismo. Como digo, en el Oncreate de Foprincipal, decides si continuar o terminar la aplicación. Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#8
|
||||
|
||||
Hola,
Es posible que lo terminara dejando en el archivo "dpr", pero, también es probable que al cabo hiciera lo mismo que Lepe, o sea, hacer lo propio aprovechando el evento "OnCreate" del formulario principal de la aplicación. Sin embargo, y, si es por lo engorroso que puede quedar el archivo "dpr", creo que el asunto podría reducirse (en dicho archivo "dpr") a un par de instrucciones, y dejar el resto de instrucciones, variables y recursos en otro u otros módulos/unidades aparte. De todos modos, ya digo, creo que al cabo probablemente me decantaría por hacer algo similar a lo que Lepe propone. |
#9
|
||||
|
||||
Gracias por el ejemplo
Ok. esta muy bueno el ejemplo q colocastes Dec, agradezco tu valioso tiempo. Ya lo probe y funciona perfecto, ya descubri tambien cuales eran mis errores en el código q publiqué y además aprendí algo q no habia utilizado y q tu utilizas en tu ejemplo resourcestring, La solución que propone Lepe, tambien ya la habia pensado, tambien funciona lo q pasa es que yo queria que lo de las opciones del *.ini se obtubieran lo mas antes posibles, es decir antes de crear o hacer cualquier otra cosa dentro de mi aplicación y además queria probar si este tipo de cosas (Leer *.ini) se podian hacer directamente desde *.dpr que ya veo que si se puede.
Y bueno ahora si ya se como publicar código delphi, desde ahora lo hare con esas etiquetas descuiden. Saludos muchos seguimos en contacto. Gelmin Martínez (Nicaragua).
__________________
Powered by Gel |
|
|
|