REDEFINE GET MEMO y cláusula ACTION

REDEFINE GET MEMO y cláusula ACTION

Postby joseluispalma » Sat Oct 17, 2020 8:58 am

Hola,

Espero que estéis todos bien. En un campo GET desde recursos tipo memo, es decir, REDEFINE GET cCampoMemo, necesito también poder usar la cláusula ACTION, que en los gets normales sí es posible, pero no en los memos.

Es decir:

Code: Select all  Expand view
REDEFINE GET cCampoMEMO ID 101 OF oDlg MEMO ACTION Mifuncion()


¿Hay alguna forma de conseguirlo?

Gracias.
joseluispalma
 
Posts: 109
Joined: Mon Apr 30, 2012 9:10 am

Re: REDEFINE GET MEMO y cláusula ACTION

Postby Antonio Linares » Sat Oct 17, 2020 9:20 am

Jose Luis,

La claúsula GET ... ACTION ... muestra un botón en el GET

Deseas que se vea ese botón en el GET multilinea (Memo) ? En que posición ?
regards, saludos

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

Re: REDEFINE GET MEMO y cláusula ACTION

Postby joseluispalma » Sat Oct 17, 2020 9:33 am

Así es.

El botón debería ir en la primera línea, en el borde derecho del campo, como en el GET ACTION normal por favor.

¡Muchas gracias!
joseluispalma
 
Posts: 109
Joined: Mon Apr 30, 2012 9:10 am

Re: REDEFINE GET MEMO y cláusula ACTION

Postby joseluispalma » Wed Dec 23, 2020 11:48 am

Hola amigos,

¿Hay algún avance?

Gracias. Un saludo y feliz navidad
joseluispalma
 
Posts: 109
Joined: Mon Apr 30, 2012 9:10 am

Re: REDEFINE GET MEMO y cláusula ACTION

Postby Antonio Linares » Wed Dec 23, 2020 12:50 pm

Jose Luis,

Aqui tienes un ejemplo:
Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oDlg, cText, oMemo

   DEFINE DIALOG oDlg SIZE 400, 200

   @ 1, 2 GET oMemo VAR cText MEMO OF oDlg SIZE 150, 40
 
   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT ( BuildButton( oMemo ), .T. )

return nil

function BuildButton( oMemo )

   local oBtn

   @ oMemo:nTop, oMemo:nRight * 2 + 2 BUTTON oBtn PROMPT "..." OF oMemo:oWnd PIXEL SIZE 20, 20 ACTION MsgInfo( "click" )

return nil  
regards, saludos

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

Re: REDEFINE GET MEMO y cláusula ACTION

Postby joseluispalma » Wed Dec 23, 2020 9:07 pm

Muchas gracias Antonio, pero no me acaba de valer, porque el botón tiene que estar dentro del campo mismo, como ocurre con los GET normales, para que todo sea simétrico. Y además lo uso desde recursos.
joseluispalma
 
Posts: 109
Joined: Mon Apr 30, 2012 9:10 am

Re: REDEFINE GET MEMO y cláusula ACTION

Postby Antonio Linares » Thu Dec 24, 2020 9:26 am

Aqui lo tienes :-)

Con recursos solo tienes que cambiar @ 1, 2 GET ... por REDEFINE GET ...
Code: Select all  Expand view
#include "FiveWin.ch"

function Main()

   local oDlg, cText, oMemo

   DEFINE DIALOG oDlg SIZE 400, 200

   @ 1, 2 GET oMemo VAR cText MEMO OF oDlg SIZE 150, 40
 
   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT ( BuildButton( oMemo ), .T. )

return nil

function BuildButton( oMemo )

   local oBtn

   @ 0, oMemo:nWidth - 42 BUTTON oBtn PROMPT "..." OF oMemo PIXEL SIZE 20, 20 ACTION MsgInfo( "click" )
   
   oMemo:bChange = { || oBtn:Refresh() }

return nil  
regards, saludos

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

Re: REDEFINE GET MEMO y cláusula ACTION

Postby joseluispalma » Thu Dec 24, 2020 11:33 am

Muchas gracias Antonio.

Pero el comportamiento sigue sin ser como REDEFINE GET ACTION, ya que en este caso el botón se sitúa dentro del get, no fuera, y no se puede escribir texto sobre el botón.
joseluispalma
 
Posts: 109
Joined: Mon Apr 30, 2012 9:10 am

Re: REDEFINE GET MEMO y cláusula ACTION

Postby Antonio Linares » Thu Dec 24, 2020 12:16 pm

Jose Luis,

El código último al ejecutarse aqui se ve asi:

Image
regards, saludos

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

Re: REDEFINE GET MEMO y cláusula ACTION

Postby joseluispalma » Thu Dec 24, 2020 12:23 pm

Antonio,

Mira esto por favor:

Code: Select all  Expand view

#Include "FiveWin.ch"

//----------------------------------------------------------------------------//

Function Main()

   Local oDlg
   local oMemo
   local cGet := space(100)





   DEFINE DIALOG oDlg NAME "Test" TITLE "Prueba memo"



          REDEFINE GET oMemo VAR cGet  OF oDlg  ID 100  MEMO


   REDEFINE BUTTON ID 110 ACTION ( oDlg:end() )

   REDEFINE BUTTON ID 120  ACTION ( oDlg:end() )




   ACTIVATE DIALOG oDlg CENTERED;
            ON INIT ( BuildButton( oMemo ), .T. )





Return nil



function BuildButton( oMemo, oDlg )

   local oBtn


   @ 0, oMemo:nWidth - 22 BUTTONBMP oBtn PROMPT "..." OF oMemo PIXEL SIZE 20, 20 ACTION MsgInfo( "click" )

   oMemo:bChange = { || oBtn:Refresh() }



return nil
 



archivo .rc

Code: Select all  Expand view


#ifdef __FLAT__
  1 24 "c:\fivetech\WindowsXP.Manifest"
#endif


#define IDC_EDIT1   101

Test DIALOG 41, 64, 409, 199
EXSTYLE WS_EX_DLGMODALFRAME
STYLE DS_MODALFRAME | DS_3DLOOK | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Testing"
FONT 8, "MS Sans Serif"
{
 
 EDITTEXT 100, 6, 12, 166, 162, ES_AUTOHSCROLL | ES_MULTILINE | WS_BORDER | WS_TABSTOP
 CONTROL "OK", 110, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 5, 179, 50, 16
 CONTROL "Cancelar", 120, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 95, 179, 50, 16
}




 



Muchas gracias.
joseluispalma
 
Posts: 109
Joined: Mon Apr 30, 2012 9:10 am

Re: REDEFINE GET MEMO y cláusula ACTION

Postby Antonio Linares » Thu Dec 24, 2020 12:49 pm

Jose Luis,

No es simple modificar el comportamiento de un control estandar de Windows.

Ahora hay que ver como hacer que el texto no ocupe el área del botón...

A buscar en google para ver si se puede hacer y como :-)
regards, saludos

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 56 guests