• Viernes 17 de Mayo de 2024, 05:41

Autor Tema:  Formularios  (Leído 1516 veces)

figalamx

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Formularios
« en: Martes 20 de Junio de 2006, 04:01 »
0
Hola !

Tengo un pequeño problemita que no he podido resolver (tal vez entender) espero me puedan ayudar:
En una aplicacion tengo un Form1 y DataModule1. Al iniciar Form1 ejecuto una consulta cuyo componente y codigo esta en DataModule1 por lo tanto en el Source del proyecto CREO primero el DataModule y luego el Form1. Hasta aqui todo correcto. Todo funciona bien, la consulta se ejecuta adecuadamente. Mi problema tiene que ver con otra parte de codigo dentro del DataModule1 en el cual abro SI existe un fichero INI, en caso contrario lo creo. El fichero se crea adecuadamente, pero los datos de ese fichero los necesito ver en unas Label de Form1 sin embargo esas Labels siempre estan vacias; he probado varias "soluciones" pero no encuentro el problema. Mi codigo:

El Source

Código: Text
  1.  
  2.  {$R *.res}
  3.  
  4. begin
  5.   Application.Initialize;
  6.   Application.Title := 'TCP WinTool';
  7.   Splash := TSplash.Create(Application);
  8.   Splash.Show;
  9.   Splash.Update;
  10.   Principal.SplashFormHandle := Splash.Handle;
  11.   Application.CreateForm(TMDatos, MDatos);
  12.   Application.CreateForm(TForm1, Form1);
  13.   Application.Run;
  14. end.
  15.  
  16.  

al crear el DataModule

Código: Text
  1.  
  2. procedure TMDatos.DataModuleCreate(Sender: TObject);
  3. var
  4.   i: integer;
  5. begin
  6. //Establecemos la ruta de la aplicacion
  7.   RutaAPP := ExtractFilePath(ParamStr(0));
  8.  
  9.   //Creamos el archivo de Configuracion
  10.   ConfigTCP := TIniFile.Create(RutaAPP + 'ordenCfg.ini');
  11.  
  12.   if fileexists('ConfigTCP') then
  13.     with ConfigTCP do
  14.       begin
  15.         try
  16.           Form1.Label1.Caption := readstring('Bas1', 'Orden', '1');
  17.           Form1.Label2.Caption := readstring('Bas1', 'Producto', '1');
  18.           Form1.Label12.Caption := readstring('Bas1', 'Socio', '1');
  19.  
  20.         
  21.         finally
  22.           ConfigTCP.Free;
  23.         end;
  24.         
  25.       end
  26.  
  27.   else
  28.  
  29.     with ConfigTCP do
  30.       begin
  31.         try
  32.           for i := 1 to 6 do
  33.           begin
  34.             ConfigTCP.WriteString('Bas' + IntToStr(i), 'Orden', IntToStr(i));
  35.             ConfigTCP.WriteString('Bas' + IntToStr(i), 'Producto', IntToStr(i));
  36.             ConfigTCP.WriteString('Bas' + IntToStr(i), 'Socio', IntToStr(i));
  37.           end;
  38.         finally
  39.           ConfigTCP.Free;
  40.         end;
  41.       end;
  42.  
  43.   //Mas codigo
  44.  
  45. end;
  46.  
  47.  
  48.  

al crear el form1

Código: Text
  1. //Al crearse el formulario
  2. procedure TForm1.FormCreate(Sender: TObject);
  3. begin
  4.  
  5.   Orden1 := Label1.Caption;
  6.   Codigo1 := Label2.Caption;
  7.   Socio1 := Label12.Caption;
  8.  
  9. end;
  10.  
  11.  

He eliminado trozos de codigo que no va al caso, les agradesco la ayuda que me puedan prestar.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Formularios
« Respuesta #1 en: Martes 20 de Junio de 2006, 16:29 »
0
Lo que haces con TForm1.Create es asignar a tus codigos el Texto de las Labels y debería ser al revés;
Código: Text
  1.  
  2.   label1.Caption := Orden1;
  3.   Label2.Caption := Codigo1;
  4.  etc.....
  5.  
  6.  
Siempre teniendo en cuenta que Orden1, Codigo1 son Strings

figalamx

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Formularios
« Respuesta #2 en: Miércoles 21 de Junio de 2006, 20:27 »
0
Hola!
Enko: en el datamodule escribo los caption de los label los cuales despues los asigno en el FormCreate, sin embargo en la realidad nunca entro en el bucle de Readstring del datamodule y si en el de writestring; es decir que si creo el archivo INI pero nunca lo leo aunque ya este creado. De todas formas ya resolvi este problemita de otra manera un poco mas rebuscada pero me funciona.

Gracias por su ayuda y tiempo!

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Formularios
« Respuesta #3 en: Jueves 22 de Junio de 2006, 14:23 »
0
En realidad no había entendido mucho que es lo que quierías hacer, salgo mostrar algunas cadenas en labels :rolleyes: