Problema con creación de ventanas
Publicado por jhonny (8 intervenciones) el 21/01/2005 14:40:39
Hola,
Que bueno que tengan este foro, soy novato programando y me ha ayudado mucho las notas y ayudas aquí publicadas. Por favor me pueden colaborar con lo siguiente:
Creo una ventana modal con el siguiente código:
procedure TForm1.MostrarModal(Aclass: TFormClass);
begin
with AClass.Create(Application) do
try
ShowModal;
finally
Free;
end;
end;
Y llamandola así:
MostrarModal(Form2);
Llamo diferentes formularios, la mayoría solo utilizan rejillas de datos y un navegador para consultar tablas y funcionan bien, pero otros utilizan varias dataaware.
Cuando trato de ejecutar alguna acción sobre uno de estos objetos, como una comparación o asignación, ocurre la siguiente excepción:
EAccessViolation with message 'Access Violation at Address 004FF42E in module 'Programa.exe'. Read of address 00000340.
Pero si llamo la forma utilizando:
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
Esta Trabaja perfectamente y puedo ejecutar todos los procedimientos asignados a ella.
Me gustaría poder implementar la otra forma por ser mucho más elegante, pero no se que problema se presenta.
Estoy utilizando Delphi 6.
El código lo tomé del libro La Cara Oculta de Delphi 4, de Ian Marteens.
Gracias por su colaboración.
Que bueno que tengan este foro, soy novato programando y me ha ayudado mucho las notas y ayudas aquí publicadas. Por favor me pueden colaborar con lo siguiente:
Creo una ventana modal con el siguiente código:
procedure TForm1.MostrarModal(Aclass: TFormClass);
begin
with AClass.Create(Application) do
try
ShowModal;
finally
Free;
end;
end;
Y llamandola así:
MostrarModal(Form2);
Llamo diferentes formularios, la mayoría solo utilizan rejillas de datos y un navegador para consultar tablas y funcionan bien, pero otros utilizan varias dataaware.
Cuando trato de ejecutar alguna acción sobre uno de estos objetos, como una comparación o asignación, ocurre la siguiente excepción:
EAccessViolation with message 'Access Violation at Address 004FF42E in module 'Programa.exe'. Read of address 00000340.
Pero si llamo la forma utilizando:
Application.CreateForm(TForm2, Form2);
Form2.ShowModal;
Esta Trabaja perfectamente y puedo ejecutar todos los procedimientos asignados a ella.
Me gustaría poder implementar la otra forma por ser mucho más elegante, pero no se que problema se presenta.
Estoy utilizando Delphi 6.
El código lo tomé del libro La Cara Oculta de Delphi 4, de Ian Marteens.
Gracias por su colaboración.
Valora esta pregunta


0