FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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; Gracias de antemano..... Suerte |
#2
|
||||
|
||||
La función ya viene hecha. Es el método ClientToScreen del formulario.
// Saludos |
#3
|
|||
|
|||
Gracias roman, voy a ensayarla....
|
#4
|
||||
|
||||
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 |
|
|
|