Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Zeos Lib - Configuracion manual de componentes

Buenas de nuevo, me encuentro utilizando zeos lib y delphi 10.2 y tengo una duda sobre el componente tzconnecion, este es en enlace que conecta con las base de datos y tiene las siguientes propiedades, entre otras
  • Hostname (nombre o direccion del host)
  • Database - nombre de la base de datos)
  • Library location (por defecto busca la libraria de la base de datos en system32) sino se encuentra aqui o no la reconoce se puede ingresar la ruta del dll de forma manual
  • User - usuario con el que se conecta a la base de datos
  • password - contraseña del usuario de la base de datos.
Estas propiedades obviamente no siempre son las mismas y quisiera saber como puedo hacer que el usuario pueda cambiarlas de ser necesario, mayormente porque quiero que el soft corra en distintas maquinas conectandose a un unico server y porque por algun motivo con versiones de windows 64 zeos lib no reconoce el dll en la carpeta system32 por mas que este y tampoco en syswow64 por lo que estuve probando.



Saludos y desde ya muchas gracias
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #2  
Antiguo 10-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por The Cid James Ver Mensaje
... por algun motivo con versiones de windows 64 zeos lib no reconoce el dll en la carpeta system32 por mas que este y tampoco en syswow64 por lo que estuve probando.
En un windows 64 bits, los programas, controladores, bibliotecas dll, etc. de 64 bits van en system32.
En un windows 64 bits, los programas, controladores, bibliotecas dll, etc. de 32 bits van en syswow64.

Aunque la lógica diría que es al revés. Son las ocurrencias de microsoft.
Responder Con Cita
  #3  
Antiguo 10-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Cuando instale zeos lib copie los dll manualmente a dicha carpeta en una VM con windows de 64 bits y no hubo ningun caso no los tomo, probe lo mismo en una vm con windows de 32 bits y lo tomo normalmente, de todas formas quisiera saber como parametrizar estas propiedades para guardarlas en otro lado como en un .ini segun lo que me comento alguien mas me comento. Ni siquiera se si es posible parametrizar esto en esos componentes
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #4  
Antiguo 11-12-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
hola,
En cuanto a las DLLs como te ha comentado Casimiro, estando en las carpetas de windows debería de cogerlas sin problemas, otra opción es dejar dichas DLLs en la misma carpeta que el ejecutable y en ninguno de estos casos usar la opción LibraryLocation del componente, salvo que quieras usar otra localización distinta de estas dos (las opciones por defecto).

Para el tema de la configuración por parte del usuario es muy recomendable que marques la opción DesingConnection a true, esta opción te permite mantener la conexión activa en tiempo de diseño pero no conecta automáticamente al crear el componente, esto es necesario si la configuración de diseño va a ser distinta que la configuración en ejecución.

Y aquí te dejo un ejemplo de como puedes hacer para que el usuario pueda configurar la conexión y guardar y recuperar dicha configuración:


Código Delphi [-]
uses dialogs, Forms, Vcl.Controls, inifiles, unit2;

{$R *.dfm}


{ TDataModule3 }
function TDMConnection.ConfigurarDBConnection: Boolean;
var
  FormConfig:TFormDBConfig;
begin
  /// Aqui se muestra un Form con los campos de la conexion, para que el usuario
  /// los pueda modificar y despues guardar dicha configuracion en un fichero INI
  FormConfig:=TFormDBConfig.create(application);
  try
    FormConfig.showModal;
    Result:=(FormConfig.modalResult=mrOk);
  finally
    FormConfig.free
  end;
  if result then
    SaveDBConfig;
end;

procedure TDMConnection.DataModuleDestroy(Sender: TObject);
begin
  ZConnection1.Disconnect;
end;

function TDMConnection.DBConectar: Boolean;

var
  intento:LongInt;
begin
  intento:=0;
  if loadDBConfig then
    repeat
      try
        ZConnection1.Connect;
      except
        // Error en el proceso de conexion
        On E:Exception do
          MessageDlg(E.message, mtError, [mbOK], 0);
      end;
      inc(intento);
      /// se sale:
      ///   si se ha conectado correctamente,
      ///   si se ha intentando conectar 3 o mas veces sin exito
      ///   o si no se ha conseguido conectar y se ha cancelado la ventana de configuración
    until ZConnection1.Connected or (intento>=3) or not ConfigurarDBConnection;
end;

function TDMConnection.loadDBConfig: Boolean;
var
  ConfigFile:TIniFile;
  ASection:String;
begin
  Result:=False;
  ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
  try
    with ZConnection1 do begin
      ASection:=ZConnection1.Name;
      Database := ConfigFile.ReadString(ASection, 'database', database);
      Catalog := DataBase;
      HostName := ConfigFile.ReadString(ASection, 'HostName', HostName);
      Port := ConfigFile.ReadInteger(ASection, 'Port', Port);
      protocol := ConfigFile.ReadString(ASection, 'protocol', protocol);
      LibraryLocation:= ConfigFile.ReadString(ASection, 'LibraryLocation', LibraryLocation);
      /// Para el Usuario/password es conveniente aplicar algun algoritmo de codificacion/descodificacion
      User := ConfigFile.ReadString(ASection, 'User', User);
      password := ConfigFile.ReadString(ASection, 'password', password);
      Result:=true;
    end;
  finally
    ConfigFile.Free;
  end;
end;

function TDMConnection.SaveDBConfig: Boolean;
var
  ConfigFile:TIniFile;
  ASection:String;
begin
  Result:=False;
  ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
  try
    with ZConnection1 do begin
      ASection:=ZConnection1.Name;
      ConfigFile.WriteString(ASection, 'database', database);
      ConfigFile.WriteString(ASection, 'HostName', HostName);
      ConfigFile.WriteInteger(ASection, 'Port', Port);
      ConfigFile.WriteString(ASection, 'protocol', protocol);
      ConfigFile.WriteString(ASection, 'LibraryLocation', LibraryLocation);
      /// Para el Usuario/password es conveniente aplicar algun algoritmo de codificacion/descodificacion
      ConfigFile.WriteString(ASection, 'User', User);
      ConfigFile.WriteString(ASection, 'password', password);
      Result:=true;
    end;
  finally
    ConfigFile.Free;
  end;
end;

Y para usarlo solo es necesario poner

Código Delphi [-]
  if not DMConnection.DBConectar then begin
    MessageDlg('No ha sido posible conectarse a la BBDD', mtError, [mbOK], 0);
    exit;
  end;
  MessageDlg('Conexion OK', mtInformation, [mbOK], 0);

Importante en ZEOS guardar también los campos protocol y port (protocolo y puerto) son los que indican el sistema de base de datos que se va utilizar, y que DLLs va a necesitar para conectar, (ZEOS permite conectar a múltiples motores de bases de datos)

Un saludo

Última edición por bucanero fecha: 11-12-2017 a las 12:01:08.
Responder Con Cita
  #5  
Antiguo 11-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Cita:
Empezado por bucanero Ver Mensaje
hola,
En cuanto a las DLLs como te ha comentado Casimiro, estando en las carpetas de windows debería de cogerlas sin problemas, otra opción es dejar dichas DLLs en la misma carpeta que el ejecutable y en ninguno de estos casos usar la opción LibraryLocation del componente, salvo que quieras usar otra localización distinta de estas dos (las opciones por defecto).

Para el tema de la configuración por parte del usuario es muy recomendable que marques la opción DesingConnection a true, esta opción te permite mantener la conexión activa en tiempo de diseño pero no conecta automáticamente al crear el componente, esto es necesario si la configuración de diseño va a ser distinta que la configuración en ejecución.

Y aquí te dejo un ejemplo de como puedes hacer para que el usuario pueda configurar la conexión y guardar y recuperar dicha configuración:


Código Delphi [-]
uses dialogs, Forms, Vcl.Controls, inifiles, unit2;

{$R *.dfm}


{ TDataModule3 }
function TDMConnection.ConfigurarDBConnection: Boolean;
var
  FormConfig:TFormDBConfig;
begin
  /// Aqui se muestra un Form con los campos de la conexion, para que el usuario
  /// los pueda modificar y despues guardar dicha configuracion en un fichero INI
  FormConfig:=TFormDBConfig.create(application);
  try
    FormConfig.showModal;
    Result:=(FormConfig.modalResult=mrOk);
  finally
    FormConfig.free
  end;
  if result then
    SaveDBConfig;
end;

procedure TDMConnection.DataModuleDestroy(Sender: TObject);
begin
  ZConnection1.Disconnect;
end;

function TDMConnection.DBConectar: Boolean;

var
  intento:LongInt;
begin
  intento:=0;
  if loadDBConfig then
    repeat
      try
        ZConnection1.Connect;
      except
        // Error en el proceso de conexion
        On E:Exception do
          MessageDlg(E.message, mtError, [mbOK], 0);
      end;
      inc(intento);
      /// se sale:
      ///   si se ha conectado correctamente,
      ///   si se ha intentando conectar 3 o mas veces sin exito
      ///   o si no se ha conseguido conectar y se ha cancelado la ventana de configuración
    until ZConnection1.Connected or (intento>=3) or not ConfigurarDBConnection;
end;

function TDMConnection.loadDBConfig: Boolean;
var
  ConfigFile:TIniFile;
  ASection:String;
begin
  Result:=False;
  ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
  try
    with ZConnection1 do begin
      ASection:=ZConnection1.Name;
      Database := ConfigFile.ReadString(ASection, 'database', database);
      Catalog := DataBase;
      HostName := ConfigFile.ReadString(ASection, 'HostName', HostName);
      Port := ConfigFile.ReadInteger(ASection, 'Port', Port);
      protocol := ConfigFile.ReadString(ASection, 'protocol', protocol);
      LibraryLocation:= ConfigFile.ReadString(ASection, 'LibraryLocation', LibraryLocation);
      /// Para el Usuario/password es conveniente aplicar algun algoritmo de codificacion/descodificacion
      User := ConfigFile.ReadString(ASection, 'User', User);
      password := ConfigFile.ReadString(ASection, 'password', password);
      Result:=true;
    end;
  finally
    ConfigFile.Free;
  end;
end;

function TDMConnection.SaveDBConfig: Boolean;
var
  ConfigFile:TIniFile;
  ASection:String;
begin
  Result:=False;
  ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));
  try
    with ZConnection1 do begin
      ASection:=ZConnection1.Name;
      ConfigFile.WriteString(ASection, 'database', database);
      ConfigFile.WriteString(ASection, 'HostName', HostName);
      ConfigFile.WriteInteger(ASection, 'Port', Port);
      ConfigFile.WriteString(ASection, 'protocol', protocol);
      ConfigFile.WriteString(ASection, 'LibraryLocation', LibraryLocation);
      /// Para el Usuario/password es conveniente aplicar algun algoritmo de codificacion/descodificacion
      ConfigFile.WriteString(ASection, 'User', User);
      ConfigFile.WriteString(ASection, 'password', password);
      Result:=true;
    end;
  finally
    ConfigFile.Free;
  end;
end;


Y para usarlo solo es necesario poner

Código Delphi [-]

  if not DMConnection.DBConectar then begin
    MessageDlg('No ha sido posible conectarse a la BBDD', mtError, [mbOK], 0);
    exit;
  end;
  MessageDlg('Conexion OK', mtInformation, [mbOK], 0)

Importante en ZEOS guardar también los campos protocol y port (protocolo y puerto) son los que indican el sistema de base de datos que se va utilizar, y que DLLs va a necesitar para conectar, (ZEOS permite conectar a múltiples motores de bases de datos)

Un saludo
Primero que nada muchas gracias por tomarte el tiempo de explicarme, en ese caso si es que entiendo el ejemplo, estaria abriend ola configuracion en un formulario en el caso de que al abrir la aplicacion no conecte el momento de abrir?

Código Delphi [-]
begin   Result:=False;   ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'))
En cuanto al comentario en el que recomendas algun tipo de codificacion cuales serian los usados normalmente, desconozco los metodos de ofuscacion de codigo, y los hash md5 de "one way" estan totalmente descartados para algo asi
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #6  
Antiguo 12-12-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Cita:
Empezado por The Cid James Ver Mensaje
Primero que nada muchas gracias por tomarte el tiempo de explicarme, en ese caso si es que entiendo el ejemplo, estaria abriend ola configuracion en un formulario en el caso de que al abrir la aplicacion no conecte el momento de abrir?
Correcto, intenta leer la configuración del fichero INI, y en caso de no existir dicho fichero, va a obtener por defecto los parametros introducidos en tiempo de diseño. Si tras intentar conectar se produce algún error, entonces mostrara una ventana de configuración para que el usuario introduzca la configuración correcta.

Cita:
Empezado por The Cid James Ver Mensaje
En cuanto al comentario en el que recomendas algun tipo de codificacion cuales serian los usados normalmente, desconozco los metodos de ofuscacion de codigo, y los hash md5 de "one way" estan totalmente descartados para algo asi
El algoritmo MD5 es de tipo HASH y aquí este tipo de algoritmos no sirven puesto que no son métodos reversibles, y para la conexión se necesita descodificar los datos.

En cuanto al idoneo, pues aquí esta la cuestión, ya dependen del nivel de seguridad que necesites, si solamente pretendes que esos datos no estén accesibles al primer curioso que le de por abrir el fichero INI, te puede servir algo tan simple como:

Código Delphi [-]
    uses ... , Soap.EncdDecd; 
    
    // para leer los datos
    User     := decodeString(ConfigFile.ReadString(ASection, 'User', User));
    password := decodeString(ConfigFile.ReadString(ASection, 'password', password));

    // para guardar los datos
    ConfigFile.WriteString(ASection, 'User', EncodeString(User));
    ConfigFile.WriteString(ASection, 'password', EncodeString(password));

Pero si necesitas mas nivel de seguridad, ya sera necesario entrar de lleno en el tema de cifrado de datos con librerías mas especificas y usando llaves de cifrado. En este hilo se habla bastante sobre este tema:

http://clubdelpra.cluster003.ovh.net...ad.php?t=24075

Un Saludo
Responder Con Cita
  #7  
Antiguo 12-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Creo que con eso me bastaria es para una materia de la facu

Por otro lado estuve leyendo esta guia escrita por Franker Sobre archivos .ini y un par mas que encontre en el foro y otros lados y no logro comprender que tipo de varialbe es

Código Delphi [-]
 MiFichero := TiniFile.Create (Fichero);

Y tampoco puedo crear el archivo ini de esta forma
Código Delphi [-]
var    ini: TIniFile;  begin    ini := TIniFile.Create('C:\archivo.ini');
end;
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #8  
Antiguo 13-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
http://www.clubdelphi.com/foros/show...light=TiniFile
Responder Con Cita
  #9  
Antiguo 13-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Tambien lei esa guia, igual esto intentado crearlo, no leerlo ya tengo el uses declarado de hecho copila pero al precionar no crea el archivo en la direccion que le asigne
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #10  
Antiguo 13-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Poco podemos decir si no vemos tu código.
Responder Con Cita
  #11  
Antiguo 13-12-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Cita:
Empezado por The Cid James Ver Mensaje
Y tampoco puedo crear el archivo ini de esta forma
Código Delphi [-]
var    ini: TIniFile;  begin    ini := TIniFile.Create('C:\archivo.ini');
end;
Si usas las ultimas versiones de windows (7 y/o 10), seguramente el problema es que ya no puedes crear el fichero INI en el raíz del disco duro por los temas de permisos y seguridad del propio windows.

O lo guardas en otra carpeta con los permisos correctos para tu usuario o lo puedes guardar en la misma carpeta del proyecto. Para el segundo caso puedes usar este código:

Código Delphi [-]
  ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));

donde ChangeFileExt(Application.ExeName, '.ini') te va a devolver la misma ruta y nombre de aplicación cambiando la extensión a '.ini'
Responder Con Cita
  #12  
Antiguo 13-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Poco podemos decir si no vemos tu código.
Ese era todo el codigo que tenia en un boton para probar si guarda o no

Cita:
Empezado por bucanero Ver Mensaje
Si usas las ultimas versiones de windows (7 y/o 10), seguramente el problema es que ya no puedes crear el fichero INI en el raíz del disco duro por los temas de permisos y seguridad del propio windows.

O lo guardas en otra carpeta con los permisos correctos para tu usuario o lo puedes guardar en la misma carpeta del proyecto. Para el segundo caso puedes usar este código:

Código Delphi [-] ConfigFile := TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini'));


donde ChangeFileExt(Application.ExeName, '.ini') te va a devolver la misma ruta y nombre de aplicación cambiando la extensión a '.ini'
Tengo permisos administrador y tambien intente guardarlo en mis documentos y en D:\, ejecutando delphi como administrador voy a probar en la carpeta del poryecto. Gracias
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #13  
Antiguo 14-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
No encontre forma al final tambien lei esto http://docwiki.embarcadero.com/RADSt...nd_TMemIniFile pero no puedo crear el archivo incluso en probe en otra pc en la note ... lo peor es que no me tira ningun error
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.
Responder Con Cita
  #14  
Antiguo 14-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No puede ser, eso es algo básico y elemental.
Responder Con Cita
  #15  
Antiguo 14-12-2017
Avatar de The Cid James
The Cid James The Cid James is offline
Miembro
NULL
 
Registrado: jun 2013
Posts: 129
Poder: 11
The Cid James Va por buen camino
Mmm si estaba tratando de crear el .ini no importa el lugar donde lo trate de crear no lo crea, y dudo que tenga algo que ver con que uso delphi tokyo


en el boton solo tengo esto

Código Delphi [-]
procedure Tfconfiguracion.Button1Click(Sender: TObject);
var
   Ini: TIniFile;
 begin
   Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
   try
     Top     := Ini.ReadInteger( 'Form', 'Top', 100 );
     Left    := Ini.ReadInteger( 'Form', 'Left', 100 );
     Caption := Ini.ReadString( 'Form', 'Caption', 'New Form' );
     if Ini.ReadBool( 'Form', 'InitMax', false ) then
       WindowState := wsMaximized
     else
       WindowState := wsNormal;
   finally
     Ini.Free;
   end;
end;
__________________
We are told to remember the idea, not the man, because a man can fail. He can be caught, he can be killed and forgotten, but 400 years later, an idea can still change the world.

Última edición por The Cid James fecha: 14-12-2017 a las 13:42:44.
Responder Con Cita
  #16  
Antiguo 14-12-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Crea un proyecto nuevo, pon un botón, y en el onclick del mismo copia esto:
Código Delphi [-]
procedure TFmain.Button1Click(Sender: TObject);
var
  ifCfg : TIniFile;
begin
  try
    ifCfg := TIniFile.Create( 'algo.ini' );
    ifCfg.WriteString( 'BaseDatos','Ruta','\datos\' );
  finally
    ifCfg.free;
  end;
end;
En el directorio windows estará 'algo.ini'
Responder Con Cita
  #17  
Antiguo 14-12-2017
bucanero bucanero is offline
Miembro
 
Registrado: nov 2013
Ubicación: Almería, España
Posts: 208
Poder: 11
bucanero Va camino a la fama
Cita:
Empezado por The Cid James Ver Mensaje
Mmm si estaba tratando de crear el .ini no importa el lugar donde lo trate de crear no lo crea, y dudo que tenga algo que ver con que uso delphi tokyo


en el boton solo tengo esto

Código Delphi [-]
procedure Tfconfiguracion.Button1Click(Sender: TObject);
var
   Ini: TIniFile;
 begin
   Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
   try
     Top     := Ini.ReadInteger( 'Form', 'Top', 100 );
     Left    := Ini.ReadInteger( 'Form', 'Left', 100 );
     Caption := Ini.ReadString( 'Form', 'Caption', 'New Form' );
     if Ini.ReadBool( 'Form', 'InitMax', false ) then
       WindowState := wsMaximized
     else
       WindowState := wsNormal;
   finally
     Ini.Free;
   end;
end;
Con este ejemplo que has puesto no te crea nada porque solo estas intentando leer del fichero INI, pero en ningún momento haces un comando de escritura. Si el fichero no existe con anterioridad con ese ejemplo tampoco te lo va a crear.
Para que se cree debes hacer primeramente un writeString, writeInteger, etc...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Manual relación Maestro-Detalle con Zeos y Firebird rrf Conexión con bases de datos 8 18-05-2011 18:38:37
Configuracion: Paleta de componentes gastelumri Varios 2 19-02-2008 17:24:05
Manual configuracion ASP.NET con IIS HombreSigma .NET 3 22-10-2005 18:17:13
Componentes... no se guarda configuración BlueSteel Varios 1 22-06-2005 02:00:07
Hay un manual de zeos 6.x... Arturo MySQL 0 23-10-2004 00:50:17


La franja horaria es GMT +2. Ahora son las 17:05:35.


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
Copyright 1996-2007 Club Delphi