Cita:
|
Empezado por senda
Se cuelga al ejecutar la operación ShowModal tras crear el formulario.
|
Me parece que no has llegado tan dentro como sería necesario para figurarme que puede pasar con esto, así que te recomiendo intentar llegar mas allá, bien lanzando el showmodal con f7 (step into) o bien poniendo breakpoints en el código que debe ejecutarse en el código que se lanza en ese intervalo.
Para demostrar que es posible, he preparado un pequeño ejemplo, espero te sea de utilidad.
Código Delphi
[-]
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;
type
TForm2 = class(TForm)
lDato: TLabel;
BitBtn1: TBitBtn;
private
public
constructor Create(AOwner: TComponent; Dato: string); reintroduce;
end;
implementation
{$R *.dfm}
constructor TForm2.Create(AOwner: TComponent; Dato: string);
begin
inherited Create(AOwner);
lDato.Caption := Dato;
end;
end.
Código Delphi
[-]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
private
public
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
f2: TForm2;
begin
f2 := TForm2.Create(Application, (Sender as TButton).Caption);
try
f2.ShowModal;
finally
f2.Free;
end;
end;
end.
El evento OnClick de ambos botones está relacionado al método Button1Click.
Creo que el dfm puede deducirse fácilmente de los .pas. ¿no?
Hasta luego.
