Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Error en FormCreate (https://www.clubdelphi.com/foros/showthread.php?t=19510)

darkerbyte 16-03-2005 20:26:04

Error en FormCreate
 
Hola, espero que alguno de ustedes pueda darme una ayuda en esto.

Estoy haciendo una aplicaciòn que utiliza dos forms. el MainForm es el
form1. Cuando inicia la aplcicaciòn debo cargar ciertas configuraciones del programa desde un archivo, asì que programe el evento onformcreate para cargar un archivo y obtener los datos que necesito. si al cargar el archivo o al convertir los datos (de string a entero) ocurre un error entonces mando un mensaje indicando que el archivo de inicio no es valido, inmediatamente, trato de abrir el Form2 ( form2.showmodal() ) que es el form que configura y crea el archivo de inicio que necesito.

El problema es que cuando llamo a la funciòn Form2.showmodal(); desde el formcreate del form1, aunque lo compila bien, al ejecutarlo me manda un error de violaciòn de direcciòn de memoria. ¿de que manera puedo arregla esto? No debo trabajar con el programa hasta que hayan sido estabelcidas dichas configuraciones.

Espero haber explicado correctamente el problema.

Por su tiempo y atención, muchas gracias.

delphi.com.ar 16-03-2005 20:44:37

Cita:

Empezado por darkerbyte
El problema es que cuando llamo a la funciòn Form2.showmodal(); desde el formcreate del form1, aunque lo compila bien, al ejecutarlo me manda un error de violaciòn de direcciòn de memoria.

Para cuando haces Form2.ShowModal, Form2 ha sido creado????
Si utilizas autocreate y Form2 esta debajo de Form1 en la lista, no lo creo pues no se ejecutará la creación del Form2 hasta que termine el evento OnCreate del Form1.

Saludos!

darkerbyte 19-03-2005 02:23:40

entiendo
 
Ah !!! tienes razon, el formcreate del form2 esta una linea abajo del formcreate del form1 en el codigo del proyecto. Al parecer lo que tengo que hacer es solo intercambiar esas lineas para que se ejecute primero el Form2.formcreate antes del Form1.formcreate.

Gracias por tu ayuda :)

Pablo Carlos 19-03-2005 14:06:49

Cita:

Empezado por darkerbyte
Ah !!! tienes razon, el formcreate del form2 esta una linea abajo del formcreate del form1 en el codigo del proyecto. Al parecer lo que tengo que hacer es solo intercambiar esas lineas para que se ejecute primero el Form2.formcreate antes del Form1.formcreate.

Hola... no creo que el 2 deba estar primero (me imagino si tienes dos form, por lógica el uno debe estar primero) ... deberías poner el siguiente codigo para crear el form 2...
Código Delphi [-]
form2 := Tform2.Create(Application) //Crear el form
try
 form2.ShowModal; //que lo muestre
finally
 form2.Free //que libere de memoria cuando lo cierres
end;

y si son mdi
Código Delphi [-]
form2.ShowModal  //... sin los parentésis.


Saludos Bye

darkerbyte 22-03-2005 20:28:24

Con razon no jalo
 
Pues si, mis estimados colegas, intenté lo que habia dicho antes y efectivamente ya no me marco el error de direccion de memoria pero despues de mostrarme el form2 y que lo cerraba, tambien se me cerraba la aplicación.
Gracias Pablo Carlos, me has dado la solución y ya el programa funciona como debe, :)

delphi.com.ar 29-03-2005 17:42:43

Cita:

Empezado por Pablo Carlos
Hola... no creo que el 2 deba estar primero (me imagino si tienes dos form, por lógica el uno debe estar primero) ... deberías poner el siguiente codigo para crear el form 2...

Que lo cree no quiere decir que lo muestre, lo puede crear y que no sea visible, de todos modos al estar como "AutoCreate" creará todos los forms, algo que me parece orroroso. Personalmente prefiero crear los forms según los necesite.

Saludos!


La franja horaria es GMT +2. Ahora son las 11:40:56.

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