Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Situar form a la esquina de la pantalla

Pues me gustaria situar el forma en la esquina inferior derecha, pero dependiendo de la resolucion cambia.
Estuve mirando la funcion windows.getclientrect pero no se si es lo que busco.

Porfavor ayudarme, no se que hacer.

Foto:
Responder Con Cita
  #2  
Antiguo 12-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Estoy seguro que deben haber mejores trucos para hacerlo y que ademas tenagn en cuenta la posición, altura y anchura de la barra de tareas, pero por lo pronto se me ocurre esta:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  Left := Screen.Width-Width;
  Top  := Screen.Height-Height;
end;
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 12-09-2007
Avatar de martinzcr
martinzcr martinzcr is offline
Miembro
 
Registrado: jun 2006
Ubicación: San Jose, Costa Rica
Posts: 53
Poder: 18
martinzcr Va por buen camino
Hola:

Tambien puedes hacerlo así

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
     Left := 0;
     Top  := 0;
end;

Saludos!
__________________
Martin Zalazar
Responder Con Cita
  #4  
Antiguo 12-09-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Cita:
Empezado por martinzcr Ver Mensaje
Hola:

Tambien puedes hacerlo así

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
     Left := 0;
     Top  := 0;
end;

Saludos!
Bueno, pero creo que eso la situaria en la equina superior izquierda y no en la inferiro derecha .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 12-09-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Muchas gracias por las respuestas pero ya encontre la solucion con 2 sencillas funciones que hice:

Código Delphi [-]
function ScreenHeigth(y : integer): integer;
const
BarraTareas=29;
var
Altura: integer;
begin
Altura:= screen.Height - BarraTareas;
result:= Altura - y;

end;

function ScreenWidth(x : integer): integer;
var
Ancho: integer;
begin
Ancho:= screen.Width +2; // 2 es el borderwith del form
result:= Ancho - x;
end;



var
Rectangulo :TRect;
begin
with Rectangulo do
   begin
     Left:=0;
     Top:=0;
     Right:=Fmini.Width;
     Bottom:=FMini.Height;
   end;
mediaplayer1.Display:=FMIni.PVideo;
   MediaPlayer1.DisplayRect:=Rectangulo;
FMini.timer2.enabled:=true;
   FMini.PControles.Top:=104;
   FMini.Top:=ScreenHeigth(FMini.Height);
   FMini.Left:=ScreenWidth(FMini.Width);
   Fmini.showmodal;

Como sospechareis es para hacer una mini ventanita en la esquina de la pantalla como hace el reproductor de windows, por fin lo consegui

Que bien se ven los videos!!

Salu2
Responder Con Cita
  #6  
Antiguo 12-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

A ver qué te parece así.

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
  r: TRect;
begin
  if SystemParametersInfo(SPI_GETWORKAREA,0,@r,0) then
  begin
    self.Left := r.Right-self.Width;
    self.Top := r.Bottom-self.Height;
  end;
end;

Lo que hacemos es conseguir el rectángulo del área de trabajo, y eso excluye no sólo la barra de tareas de Windows, sino cualquier otra que existiera y tengan el tamaño que tengan. Arriba sitúo el formulario en la esquina inferior derecha, pero, no te será complicado situarlo donde mejor te parezca.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 12-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Güeno.

Código Delphi [-]

uses
  Windows;

type
  TCorner = (cLeftTop, cLeftButton, cRightTop, cRightButton);

function CornerForm(form: TCustomForm; corner: TCorner): boolean;
var
  r: TRect;
begin
  result := false;
  if SystemParametersInfo(
   SPI_GETWORKAREA,0,@r,0) then
  begin
    case corner of
      cLeftTop: begin
        form.Top := r.Top;
        form.Left := r.Left;
      end;
      cLeftButton: begin
        form.Left := r.Left;
        form.Top := r.Bottom-form.Height;
      end;
      cRightTop: begin
        form.Top := r.Top;
        form.Left := r.Right-form.Width;
      end;
      cRightButton: begin
        form.Top := r.Bottom-form.Height;
        form.Left := r.Right-form.Width;
      end;
    end;
    result := true;
  end else
    RaiseLastOSError();
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 12-09-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Cita:
Empezado por dec Ver Mensaje
Hola,

A ver qué te parece así.


Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
var
r: TRect;
begin
if SystemParametersInfo(SPI_GETWORKAREA,0,@r,0) then
begin
self.Left := r.Right-self.Width;
self.Top := r.Bottom-self.Height;
end;
end;





Lo que hacemos es conseguir el rectángulo del área de trabajo, y eso excluye no sólo la barra de tareas de Windows, sino cualquier otra que existiera y tengan el tamaño que tengan. Arriba sitúo el formulario en la esquina inferior derecha, pero, no te será complicado situarlo donde mejor te parezca.
Mucho mejor que mi code dec, gracias

Me lie demasiado aunque consegui el mismo resultado pero es mas codigo

PD: Hay alguna forma de que un form este siempre delante de todo, por ahora lo abro con showmodal pero no funciona como la mascara mini del windows media player 10.

Salu2

Última edición por Khronos fecha: 12-09-2007 a las 21:30:16.
Responder Con Cita
  #9  
Antiguo 12-09-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Puedes probar con la propiedad "FormStyle" del formulario dándole el valor "fsStayOnTop". O puedes, si lo haces en tiempo de ejecución, utilizar la función "SetWindowPos()":

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  SetWindowPos(Handle,HWND_TOPMOST,Left,
   Top,Width,Height,SWP_SHOWWINDOW);
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #10  
Antiguo 13-09-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Muchas gracias, ya lo solucione

Salu2
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Form a pantalla completa Roilo Varios 4 19-09-2007 15:26:25
Imagen animada en la esquina superior izq de mi form Gelmin Gráficos 6 22-08-2007 02:17:31
Adaptar form a nuevo tamaño de pantalla Tonio Varios 4 26-05-2007 18:55:45
Form que ocupe toda la pantalla Mauro® Varios 2 10-06-2004 23:07:55
Convertir un punto X,Y sobre una form a coordenadas Absolutas (Pantalla) Majo Gráficos 3 16-03-2004 16:57:14


La franja horaria es GMT +2. Ahora son las 04:44:36.


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