PDA

Ver la Versión Completa : Convertir un punto X,Y sobre una form a coordenadas Absolutas (Pantalla)


Majo
16-03-2004, 17:48:19
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.

{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, 17:48:51
La función ya viene hecha. Es el método ClientToScreen del formulario.

// Saludos

Majo
16-03-2004, 17:51:19
Gracias roman, voy a ensayarla....

roman
16-03-2004, 17: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