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
- Code: Select all Expand view RUN
// 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
- Code: Select all Expand view RUN
...
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
- Code: Select all Expand view RUN
- 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?