Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Convertir un punto X,Y sobre una form a coordenadas Absolutas (Pantalla) (https://www.clubdelphi.com/foros/showthread.php?t=8279)

Majo 16-03-2004 16:48:19

Convertir un punto X,Y sobre una form a coordenadas Absolutas (Pantalla)
 
Hola amigos,

Mi prblema es el siguiente:

Tengo dos Form (Form1 y Form2).
Form1.FormStyle:=fsMDIForm
Form2.FormStyle:=fsMDIChild, inicialmente, tenía las dos forms configuradas con formStyle normal y no tenía ningún problema con las coodenadas, pero al configurarlas de esta manera ocurre un desplazamiento en las coordenadas.

El asunto es que tengo un punto sobre la form2 (X,Y) y necesito trasladar este punto a coordenadas absolutas, es decir, con respecto a la pantalla.

Tengo una función "Un tanto rudimentaria", pero al principio funcionaba, cuando los formStyle estaban en normal.

Código:

{Toma un punto sobre una Form y lo convierte a coordenadas
absolutas}
function CoordenadaAbsoluta(FormPoint:TPoint;Form:TForm):TPoint;
 var PuntoAbsoluto:TPoint;
begin
    PuntoAbsoluto.X:=FormPoint.X+Form.Left+
                      ((Form.Width-Form.ClientWidth) div 2);//ancho del borde izquierdo
    PuntoAbsoluto.Y:=FormPoint.Y+Form.Top+
                      (Form.Height-Form.ClientHeight)
                      -((Form.Width-Form.ClientWidth) div 2);
    Result:=PuntoAbsoluto;
end;

si alguien me puede decir cual es el error, se lo agradecería....

Gracias de antemano..... Suerte

roman 16-03-2004 16:48:51

La función ya viene hecha. Es el método ClientToScreen del formulario.

// Saludos

Majo 16-03-2004 16:51:19

Gracias roman, voy a ensayarla....

roman 16-03-2004 16:57:14

Por cierto, para implementar la función tú mismo quizá te convenga usar ClientOrigin que te da las coordenadas absolutas de la esquina superior izquierda del área cliente del formulario que es lo qe necesitas para hacer la transformación de coordenadas sin liarte con los bordes.

// Saludos


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

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