Ir al contenido


Foto

Ventana Popup


  • Por favor identifícate para responder
13 respuestas en este tema

#1 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 01 octubre 2009 - 09:28

Hola,
un pequeño y simple procedimiento que muestra un formulario al estilo "popup":



delphi
  1. procedure popup;
  2. begin
  3.   Top := Screen.Height - Height;
  4.   Left := Screen.Width - Width;
  5.   AnimateWindow(Handle,500,AW_VER_NEGATIVE);
  6.   SetFocus;
  7. end;



Con solo llamar el procedimiento en el evento OnShow del formulario bastará  ;)


Saludos!
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.177 mensajes
  • LocationMéxico

Escrito 01 octubre 2009 - 09:38

Hola amigo

las variables Top, Height,  Left y Width como se declaran y/o que valores deben tener.

Salud OS
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 02 octubre 2009 - 06:01

Hola amigo

las variables Top, Height,  Left y Width como se declaran y/o que valores deben tener.

Salud OS


Asumo que esas variables son del Form, o sea, propiedades del Form:

Form1.Left;
Form1.Top;
Form1.Width;
Form1.Height;

ya que también se pueden escribir sin el nombre del form por delante ;).

Saludos
  • 0

#4 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 02 octubre 2009 - 07:19


Hola amigo

las variables Top, Height,  Left y Width como se declaran y/o que valores deben tener.

Salud OS


Asumo que esas variables son del Form, o sea, propiedades del Form:

Form1.Left;
Form1.Top;
Form1.Width;
Form1.Height;

ya que también se pueden escribir sin el nombre del form por delante ;).

Saludos


Efectivamente amigo enecumene, se trata de esas y el valor que contengan no importa, lo único que no tiene en cuenta este código es el tamaño de la barra de tareas, ya que el formulario aparece desde esta y no después.


Saludos!
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.177 mensajes
  • LocationMéxico

Escrito 02 octubre 2009 - 10:26

Hey, la pregunta es porque el procedimiento no está declarado en el form, en todo caso para que funcione debería estar mas o menos así :p



delphi
  1. procedure TForm1.FormShow(Sender: TObject);
  2.  
  3.   procedure popup;
  4.   begin
  5.     Top := Screen.Height - Height;
  6.     Left := Screen.Width - Width;
  7.     AnimateWindow(Handle,500,AW_VER_NEGATIVE);
  8.     SetFocus;
  9.   end;
  10.  
  11. begin
  12.   popup;
  13. end;



Salud OS

  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 02 octubre 2009 - 10:44

Y de esta manera podemos jugar con la posición del formulario:



delphi
  1. procedure TForm1.popup(x,y: Integer);
  2. begin
  3.   Top := (Screen.Height - Height) - x;
  4.   Left := (Screen.Width - Width) - y;
  5.   AnimateWindow(Handle,500,AW_VER_NEGATIVE);
  6.   SetFocus;
  7. end;
  8.  
  9. procedure TForm1.FormShow(Sender: TObject);
  10. begin
  11. popup(15,15);
  12. end;



Saludos.
  • 0

#7 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 02 octubre 2009 - 01:58

Hey, la pregunta es porque el procedimiento no está declarado en el form, en todo caso para que funcione debería estar mas o menos así :p



delphi
  1. procedure TForm1.FormShow(Sender: TObject);
  2.  
  3.   procedure popup;
  4.   begin
  5.     Top := Screen.Height - Height;
  6.     Left := Screen.Width - Width;
  7.     AnimateWindow(Handle,500,AW_VER_NEGATIVE);
  8.     SetFocus;
  9.   end;
  10.  
  11. begin
  12.   popup;
  13. end;



Salud OS


Sucedió amigo que le quité a propósito el form1 al procedimiento; basta con esto no más:



delphi
  1. procedure TForm1.popup;
  2. begin
  3.   Top := Screen.Height - Height;
  4.   Left := Screen.Width - Width;
  5.   AnimateWindow(Handle,500,AW_VER_NEGATIVE);
  6.   SetFocus;
  7. end;



Y ahí esta :D

enecumene pregunto ¿cual es la idea de 'x' y 'y'?

Saludos!
  • 0

#8 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.177 mensajes
  • LocationMéxico

Escrito 02 octubre 2009 - 02:10

Y porque no así :p



delphi
  1. procedure TForm1.FormShow(Sender: TObject);
  2. begin
  3.     Top := Screen.Height - Height;
  4.     Left := Screen.Width - Width;
  5.     AnimateWindow(Handle,500,AW_VER_NEGATIVE);
  6.     SetFocus;
  7. end;



:D :D :D

Salud OS

  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 02 octubre 2009 - 04:22

enecumene pregunto ¿cual es la idea de 'x' y 'y'?


Fíjate, tal como lo tienes el popup queda pegadito a la esquina inferior derecha, la idea de x,y es que en caso de que quieras subir un poco la ventana o moverlo un poco más a la izquierda lo puedas hacer, pruebalo y vea la diferencia ;).
  • 0

#10 felipe

felipe

    Advanced Member

  • Administrador
  • 3.283 mensajes
  • LocationColombia

Escrito 02 octubre 2009 - 04:53


enecumene pregunto ¿cual es la idea de 'x' y 'y'?


Fíjate, tal como lo tienes el popup queda pegadito a la esquina inferior derecha, la idea de x,y es que en caso de que quieras subir un poco la ventana o moverlo un poco más a la izquierda lo puedas hacer, pruebalo y vea la diferencia ;).


Si claro, precisamente a eso me refería con la barra de tareas, pero pues no se que propiedad la maneja y por eso lo deje asi *-)


Saludos!
  • 0

#11 Caral

Caral

    Advanced Member

  • Administrador
  • 4.261 mensajes
  • LocationCosta Rica

Escrito 02 octubre 2009 - 05:21

Hola
Me gusta mucho el efecto y también los cambios. (y)
Os felicito. (b)
Saludos
PD: Guardado. (y)
  • 0

#12 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 02 octubre 2009 - 06:34

Una versión mejorada :D:



delphi
  1. procedure TForm1.popup(x,y: Integer, flag: Cardinal);
  2. begin
  3.   Top := (Screen.Height - Height) - x;
  4.   Left := (Screen.Width - Width) - y;
  5.   AnimateWindow(Handle,500,flag);
  6.   SetFocus;
  7. end;
  8.  
  9. procedure TForm1.FormShow(Sender: TObject);
  10. begin
  11. popup(15,15,AW_SLIDE + AW_VER_NEGATIVE);
  12. end;



donde flag puedes colocar los efectos disponibles, los puedes ver en MSDN ;)

Saludos.


  • 0

#13 pepinomoretoni

pepinomoretoni

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 11 diciembre 2009 - 08:17

Para que me quede arriba de la barra de tareas yo lo use asi:



delphi
  1. procedure TForm1.FormShow(Sender: TObject);
  2. begin
  3.     Top := Screen.WorkAreaHeight - Height;
  4.     Left := Screen.WorkAreaWidth - Width;
  5.     AnimateWindow(Handle,1000,AW_VER_NEGATIVE+AW_SLIDE);
  6.     SetFocus;
  7. end;



Gracias por sus aportes y saludos para todos.
  • 0

#14 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 12 diciembre 2009 - 07:11

Muchas gracias por el aporte amigo pepinomoretoni (y)
  • 0