PDA

Ver la Versión Completa : Un form enfadado. No quiere a nadie (ni a sí mismo)


Bicholoco
30-04-2007, 12:36:04
Hola a todos:

Mi problema es que tengo una aplicación con varios Form. Pero solo me da errores uno de ellos. En adelante le llamaré Form2

En este Form2 todo funciona correctamente. Pero en cuanto hago una llamada a otro Form (o a sí mismo) me da error.

Ejemplo de cosas que me dan error:

Unit unit2;
........
........
........

function distancia(Form :TForm2):Integer;
begin
Result:=Form.Scrollbar1.Position;
end;

procedure TForm2.FormCreate(Sender: TObject);
var
a:integer;
begin
a:=distancia(Form2);
end;


Otro caso similar que también da error
implementation
uses Unit7;
........
........
Form2.Image1.Picture:=Form7.Image1.Picture;

El programa se compila sin problemas, pero da un error del tipo "access violation at address XXXX in module XXX.exe. Read of address XXXX " al ejecutarlo.

En resumen, desde form2 no puedo llamara a ningún form.
¿Alguna idea de lo que puede ser?

Neftali [Germán.Estévez]
30-04-2007, 13:21:24
Intenta poner ese código en el OnShow, por ejemplo, en lugar del OnCreate y haz la prueba.

Bicholoco
30-04-2007, 14:29:15
Muchas gracias.

Lo del Onshow seguía dando el mismo problema.

Al parecer, el problema se originaba por una matrices de tamaño variable (variant) que no estaban correctamente definidas.
Aun así, no sé porqué eso afectaba a lo de
Form2.Image1.Picture:=Form7.Image1.Picture;

Tal vez sea porque, en programación, cuando una cosa va mal, todo lo demás va mal.

Gracias