Ver Mensaje Individual
  #8  
Antiguo 24-05-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Ya que te enganchaste con el tema, te comento otro recurso: Métodos de clase.

Los métodos de clase se aplican a una referencia de clase a diferencia de los métodos aplicados a la instancia de una clase.

Y seguimos con las ventanitas...

Form1:
Código Delphi [-]
...
uses Unit2; // donde está declarado Form2

procedure TForm1.Button1Click(Sender: TObject);
begin
  if  TForm2.Mostrar = mrCancel then
    ShowMessage('Cancelo')
  else
    ShowMessage('Acepto');
end;

Form2:
Código Delphi [-]
...
type
  TForm2 = class(TForm)
    BitBtnAceptar: TBitBtn;
    BitBtnCancelar: TBitBtn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
  private
  public
    class function Mostrar: TModalResult;
  end;

var
  Form2: TForm2;

implementation

class function TForm2.Mostrar: TModalResult;
begin
  if not Assigned(Form2) then
    Form2:= TForm2.Create(nil);
  Result:= Form2.ShowModal;
end;
...
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:= caFree;
end;

procedure TForm2.FormDestroy(Sender: TObject);
begin
  Form2:= nil;
end;
(Fijate la diferencia en la declaracion class function o class procedure, con la de un método normal de instancia de clase)

En el ejemplo puse las propiedades ModalResult de los BitBtns a mrOk y mrCancel respectivamente para capturar como salió de Form2, en Form1.

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 24-05-2011 a las 19:33:37.
Responder Con Cita