Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Como puedo cortar el form show? (https://www.clubdelphi.com/foros/showthread.php?t=58890)

silvana 05-08-2008 14:50:22

¿Como puedo cortar el form show?
 
Hola todos, alguien me puede ayudar ?? quiero en el on show de un form hacer una condicion que si no cumple no me muestre el form, como lo puedo hacer? no lo puedo hacer el el create porque no tengo que modificar desde donde se llama, y si creo una excepcion en el create no me hace caso en el show.

Gracias a cualquiera que me ayude!

Sil

Neftali [Germán.Estévez] 05-08-2008 15:30:29

Prueba con este mensaje.
En la parte public del formulario define este procedimiento:
Código Delphi [-]
procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;

En la implementacion prueba con esto:
Código Delphi [-]
procedure TForm1.CMShowingChanged(var Message: TMessage);
var
  Str:String;
  i:Integer;
begin

  MessageDlg('Classname:'+ Self.ClassName+#13+#10+
             'Name:'+ Self.Name+ #13+#10+
             'Left:'+ IntToStr(Self.Left) + #13+#10+
             'Width:'+ IntToStr(Self.Width)+#13+#10+
             'Style:'+ IntToStr(Ord(Self.FormStyle))+#13+#10+
             'Visible:' + BoolToStr(Self.Visible, True), mtInformation, [mbOK], 0);

  Str := InputBox('Visualizar o no un form', 'Introduce un número(par=VISIBLE):','0');
  i := StrToIntDef(Str, 0);

  if Odd(i) then begin
    MessageDlg('Visualizar.', mtInformation, [mbOK], 0);
    inherited;
  end
  else begin
    MessageDlg('No visualizar', mtInformation, [mbOK], 0);
    Self.Close;
  end;
end;

En este caso visualiza o no dependiendo del número que coloques; Se trata de cambiar eso por la condición que tú necesites.

La verdad es que no lo había probado hasta ahora; Me has pillado mirando la VCL por otros temas y al revisar el hilo, he visto este mensaje, lo he probado y parece que funciona.
Ahora mismo no se me ocurre que inconvenientes puede tener; Sería cuestión de hacerlo funcionar y ver qué tal (si sale algo que no se nos haya ocurrido).


La franja horaria es GMT +2. Ahora son las 02:23:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi