Programación General > Delphi

 Formularios

(1/1)

figalamx:
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 ---  {$R *.res} begin  Application.Initialize;  Application.Title := 'TCP WinTool';  Splash := TSplash.Create(Application);  Splash.Show;  Splash.Update;  Principal.SplashFormHandle := Splash.Handle;  Application.CreateForm(TMDatos, MDatos);  Application.CreateForm(TForm1, Form1);  Application.Run;end.   
al crear el DataModule


--- Código: Text --- procedure TMDatos.DataModuleCreate(Sender: TObject);var  i: integer;begin//Establecemos la ruta de la aplicacion  RutaAPP := ExtractFilePath(ParamStr(0));   //Creamos el archivo de Configuracion  ConfigTCP := TIniFile.Create(RutaAPP + 'ordenCfg.ini');   if fileexists('ConfigTCP') then    with ConfigTCP do      begin        try          Form1.Label1.Caption := readstring('Bas1', 'Orden', '1');          Form1.Label2.Caption := readstring('Bas1', 'Producto', '1');          Form1.Label12.Caption := readstring('Bas1', 'Socio', '1');                  finally          ConfigTCP.Free;        end;              end   else     with ConfigTCP do      begin        try          for i := 1 to 6 do          begin            ConfigTCP.WriteString('Bas' + IntToStr(i), 'Orden', IntToStr(i));            ConfigTCP.WriteString('Bas' + IntToStr(i), 'Producto', IntToStr(i));            ConfigTCP.WriteString('Bas' + IntToStr(i), 'Socio', IntToStr(i));          end;        finally          ConfigTCP.Free;        end;      end;   //Mas codigo  end;   
al crear el form1


--- Código: Text ---//Al crearse el formularioprocedure TForm1.FormCreate(Sender: TObject);begin   Orden1 := Label1.Caption;  Codigo1 := Label2.Caption;  Socio1 := Label12.Caption; end;  
He eliminado trozos de codigo que no va al caso, les agradesco la ayuda que me puedan prestar.

Enko:
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 ---   label1.Caption := Orden1;  Label2.Caption := Codigo1; etc.....  Siempre teniendo en cuenta que Orden1, Codigo1 son Strings

figalamx:
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:
En realidad no había entendido mucho que es lo que quierías hacer, salgo mostrar algunas cadenas en labels :rolleyes:

Navegación

[0] Índice de Mensajes

Ir a la versión completa