![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
El problema es que Builder coloca como posición inicial la de diseño. Cuando seleccionas poScreenCenter Builder cambia a esa posición y luego muestra el Form. A nuestros ojos la ventana se creó en el centro aunque en realidad no fue así.
Para solventar el problema deberás colocar el Form donde te interesa (aunque no sea visible de momento) y luego aplicar AnimateWindow. Te muestro un ejemplo simple: Código:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// Centro la ventana...
if(Position == poScreenCenter){
Left = (Screen->Width - Width)/2;
Top = (Screen->Height - Height)/2;
}
AnimateWindow(Handle, 400, AW_ACTIVATE | AW_SLIDE | AW_HOR_POSITIVE);
}
Saludos. |
|
#2
|
||||
|
||||
|
Con respecto al problema sigue haciendo lo mismo aun después de poner tu código alguna sugerencia?
Muy cierto eso de || fue error de escritura. Otra pregunta yo había visto Left = (Screen->Width - Width)/2; sin necesidad de decir que es Form1->Left A como se le llama este uso y como funciona?
__________________
El Software es como el Sexo, si es de gratis es Mejor Última edición por aams01 fecha: 09-05-2011 a las 17:33:12. |
|
#3
|
||||
|
||||
|
Gracias por Todo
Soy un mentiroso de lo peor ya funciona con una modificacion Código:
Left = (Screen->Width - Width)/2;
Top = (Screen->Height - Height)/2;
AnimateWindow( Handle, 400, AW_BLEND);
__________________
El Software es como el Sexo, si es de gratis es Mejor |
|
#4
|
||||
|
||||
|
Cita:
Bueno, el condicional es para que se centre solo si Position es poScreenCenter. Si lo quieres centrar siempre, de todas todas, pues lo retiras y listo. Mira mi mensaje anterior, la API suele ser una buena opción. Saludos |
|
#5
|
||||
|
||||
|
Cita:
Código:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
// Centro la ventana...
SetWindowPos(Handle, HWND_TOP, (Screen->Width - Width)/2, (Screen->Height - Height)/2, 0, 0, SWP_NOSIZE);
AnimateWindow(Handle, 400, AW_ACTIVATE | AW_SLIDE | AW_HOR_POSITIVE);
}
Cita:
Quizás te interese esto como alternativa a AnimateWindow Saludos. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Ayuda con Animatewindow | Jheysson13 | Varios | 3 | 10-09-2010 01:04:49 |
| Ayuda con animatewindow | kakesoft | Varios | 6 | 16-06-2006 22:15:39 |
|