dape Usando ese código estas suponiendo que Form2 y Form3 se crean desde el principio de la aplicación, y además
se crean antes que el Form1. ¿es correcto todo esto?
Este tipo de acciones son muy propensas a fallos, por lo que se suele controlar bien:
Código Delphi
[-]
procedure form1.create(sender: tobject)
var Encontrado : Boolean;
begin
Encontrado := false;
if Sender is TButton then
begin
if Assigned(Form2) then if Tbutton(sender) = form2.boton1 then
begin
Encontrado := true;
end;
if not(Encontrado) and Assigned(Form3) then
if Tbutton(Sender) = form3.boton2 then
begin
Encontrado := true;
end;
end;
If not Encontrado then
end;
Saludos