estoy modificando la clase TGet para que cuando le añada una ACTION me dibuje el botón a la izquierda en lugar de la derecha como lo hace normalmente.
Para eso estoy modificando las coordenadas de creación del boton en el método CreateButton(), lo que es sencillo, peeeeeero.... No puedo cambiar el márgen izquierdo para que el texto del Get no quede debajo del botón. He puesto un ::SetMargins( ::nHeight, 1 ) en el método CreateButton, pero no me funciona.
En el diálogo la declaración del GET es
// Botón normal, con '...' como texto
@ nRow+13,55 GET oGet VAR cHost PICTURE "@;S50" OF oDlg SIZE 100,nGetHeight PIXEL UPDATE ;
VALID !Empty( cHost ) ;
ACTION MsgInfo('Hola' )Y en el CreateButton
...
if ValType( ::bAction ) == "B" .and. Upper( ::ClassName() ) == "TGET"
if Empty( ::cBmpName )
::SetMargins( ::nHeight, 1 )
@ 0, 0 BUTTONBMP ::oBtn OF Self ;
ACTION ( Eval( oThis:bAction, oThis ), if( ::lKeepFocus, oThis:SetFocus(), nil ) ) ;
SIZE ::nHeight - 4, ::nHeight - 4 PIXEL
if Empty( ::oBtn:hBitmap )
::oBtn:SetText( "..." )
endif
DEBUG ::nHeight
else
...El boton se crea y funciona correctamente, pero el get se ve mal

Si el setmargin lo hago en el
ACTIVATE DIALOG oDlg ON INIT oGet:SetMargins( oGet:nHeight, 1 )¿Como hago para que funcione en la clase? He visto que el SetMargin es un SendMessage(...) ¿Tendrá algo que ver?
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"