Posición de controles en dialogo.

Posición de controles en dialogo.

Postby Biel EA6DD » Tue Sep 17, 2013 3:48 pm

Dependiendo del momento en el que se definen los controles de un dialogo, estos ocupan posiciones diferentes, cuando el comando de creación es idéntico, alguna forma para que las coordenadas finales en pantalla sean la misma indpendientemente del momento de creación. En el primer caso se crean antes del ACTIVATE, y en el segundo se crean en ON INIT.
say.prg
Code: Select all  Expand view

@ 24, 16 SAY "SAY 1" OF oDlg SIZE  88,  16 PIXEL
@ 48, 16 SAY "SAY 2" OF oDlg SIZE  88,  16 PIXEL
 

Este código es común a los dos diálogos.
Code: Select all  Expand view

#include "FiveWin.ch"
FUNCTION Main()
   LOCAL oDlg
   Dlg1()
   Dlg2()
   ?'WAIT'
RETURN NIL
//----------------------
STATIC FUNCTION Dlg1()
   LOCAL oDlg
   DEFINE DIALOG oDlg TITLE ProcName() FROM 0,0 TO 10, 30
   #include "say.prg"
   ACTIVATE DIALOG oDlg NOWAIT
RETURN NIL
//---------------------
STATIC FUNCTION Dlg2()
   LOCAL oDlg
   DEFINE DIALOG oDlg TITLE ProcName() FROM 0,31 TO 10, 61
   ACTIVATE DIALOG oDlg ON INIT PlaceCtrl(oDlg) NOWAIT
RETURN NIL
//-----------------------------
STATIC FUNCTION PlaceCtrl(oDlg)
   #include "say.prg"
RETURN NIL
 

Image
Last edited by Biel EA6DD on Wed Sep 18, 2013 10:33 am, edited 1 time in total.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: Posición de controles en dialogo.

Postby Antonio Linares » Tue Sep 17, 2013 8:02 pm

Biel,

Cuando se crean los controles, justo despues del DEFINE DIALOG y antes del ACTIVATE DIALOG, estamos usando "dialogs units" y no pixeles.

Desde la claúsula ON INIT, se estan usando pixeles.

Esta es una diferencia propia del API de Windows, que en su dia se pudo haber corregido, pero no se hizo y de hacerlo a estas alturas romperiamos muchas aplicaciones.

Es un tema que hemos comentado en estos foros en varias ocasiones. Aqui tienes un artículo de Microsoft comentándolo:

http://support.microsoft.com/kb/125681
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Posición de controles en dialogo.

Postby Biel EA6DD » Wed Sep 18, 2013 6:49 am

ok, gracias Antonio, he revisado el articulo y queda claro el funcionamiento.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 32 guests