Page 1 of 1

show /hide a bitmap on a get

PostPosted: Fri Feb 24, 2023 9:19 am
by Silvio.Falconi
I have this tget control

When the cSeek is empty it must not show any button
when the user insert any digit it must show the button and the bitmap
How resolve it?

Code: Select all  Expand view
 #include "FiveWin.ch"
 
function Main()        
 
   local oDlg,oGet      
   local cSeek:= Space(100)

   DEFINE DIALOG oDlg TITLE "Test"        
 
   @ 1, 1 GET oGet VAR cSeek SIZE 50,10 PIXEL OF oDlg  ;
                     BITMAP ".\bitmaps\elimina.bmp";
                      ACTION (cSeek    := Space( 100 ),;
                                      oGet:refresh()) ;
                 
                       oGet:lBtnTransparent :=.t.
                       oGet:bChange  := { ||ChangeGetBtn(oGet,cseek) }
                      oGet:bKeyDown := { ||ChangeGetBtn(oGet,cseek)  }
                       ACTIVATE DIALOG oDlg CENTERED  ;
                       ON INIT ( oGet:cBmpName:="",oGet:oBtn:hide())
return nil
//----------------------------------------------------------------------//
Function ChangeGetBtn(oGet,cseek)
   IF EMPTY( cseek )
      oGet:oBtn:hide()
      oGet:cBmpName:=""
     * oGet:Refresh()
   ELSE
      oGet:oBtn:show()
      oGet:cBmpName:=".\bitmaps\elimina.bmp"
      oGet:Refresh()
   ENDIF
return .t.
 

Re: show /hide a bitmap on a get

PostPosted: Fri Feb 24, 2023 11:44 am
by cmsoft
Silvio:
Mira si te sirve asi:
Code: Select all  Expand view
#include "FiveWin.ch"
 
function Main()        
 
   local oDlg,oGet      
   local cSeek:= Space(100)

   DEFINE DIALOG oDlg TITLE "Test"        
 
   @ 1, 1 GET oGet VAR cSeek SIZE 50,10 PIXEL OF oDlg  ;
                     BITMAP "..\bitmaps\delete.bmp";
                      ACTION (cSeek    := Space( 100 ),;
                                      oGet:refresh()) ;
                 
                       oGet:lBtnTransparent :=.t.
                       oGet:bChange  := { ||ChangeGetBtn(oGet,cseek) }
                       ACTIVATE DIALOG oDlg CENTERED  ;
                       ON INIT ( oGet:cBmpName:="",oGet:oBtn:hide())
return nil
//----------------------------------------------------------------------//
Function ChangeGetBtn(oGet,cseek)
oGet:assign()
   IF EMPTY( oGet:cText )
      oGet:oBtn:hide()
   ELSE
      oGet:oBtn:show()
      oGet:cBmpName:="..\bitmaps\delete.bmp"
   ENDIF
return .t.

Re: show /hide a bitmap on a get

PostPosted: Fri Feb 24, 2023 12:06 pm
by Silvio.Falconi
thanks
LET ME WRITE ONLY ONE cR

Re: show /hide a bitmap on a get

PostPosted: Sat Feb 25, 2023 3:45 am
by Cgallegoa
Code: Select all  Expand view
#include "FiveWin.ch"
 
function Main()        
 
   local oDlg,oGet      
   local cSeek:= Space(100)

   DEFINE DIALOG oDlg TITLE "Test"        
 
       @ 1, 1 GET oGet VAR cSeek SIZE 50,10 PIXEL OF oDlg  ;
                 BITMAP "d:\fwh\bitmaps\delete.bmp" ;
                 ACTION ( cSeek := Space( 100 ),;
                               ChangeGetBtn(oGet,cseek),;    // ************* //
                               oGet:SetPos(0))    // ************* //

       oGet:lBtnTransparent :=.t.
       oGet:bChange  := { || oGet:Assign() , ChangeGetBtn(oGet,cseek) }
       oGet:bKeyDown := { || oGet:Assign() , ChangeGetBtn(oGet,cseek)  }

       @ 50,10 BUTTON "Exit" OF oDlg ACTION oDlg:End() PIXEL

   ACTIVATE DIALOG oDlg CENTERED  ;
      ON INIT ( oGet:cBmpName:="" , oGet:oBtn:hide())
return nil
//----------------------------------------------------------------------//

Function ChangeGetBtn(oGet,cseek)

   oGet:Assign()  // ************* //

   IF EMPTY( cseek )
      oGet:oBtn:hide()
      oGet:cBmpName:=""
   ELSE
      oGet:oBtn:show()
      oGet:cBmpName:="d:\fwh\bitmaps\delete.bmp"
   ENDIF

return .t.
 //----------------------------------------------------------------------//

Re: show /hide a bitmap on a get

PostPosted: Sun Feb 26, 2023 5:15 pm
by Silvio.Falconi
Cgallegoa wrote:
Code: Select all  Expand view
#include "FiveWin.ch"
 
function Main()        
 
   local oDlg,oGet      
   local cSeek:= Space(100)

   DEFINE DIALOG oDlg TITLE "Test"        
 
       @ 1, 1 GET oGet VAR cSeek SIZE 50,10 PIXEL OF oDlg  ;
                 BITMAP "d:\fwh\bitmaps\delete.bmp" ;
                 ACTION ( cSeek := Space( 100 ),;
                               ChangeGetBtn(oGet,cseek),;    // ************* //
                               oGet:SetPos(0))    // ************* //

       oGet:lBtnTransparent :=.t.
       oGet:bChange  := { || oGet:Assign() , ChangeGetBtn(oGet,cseek) }
       oGet:bKeyDown := { || oGet:Assign() , ChangeGetBtn(oGet,cseek)  }

       @ 50,10 BUTTON "Exit" OF oDlg ACTION oDlg:End() PIXEL

   ACTIVATE DIALOG oDlg CENTERED  ;
      ON INIT ( oGet:cBmpName:="" , oGet:oBtn:hide())
return nil
//----------------------------------------------------------------------//

Function ChangeGetBtn(oGet,cseek)

   oGet:Assign()  // ************* //

   IF EMPTY( cseek )
      oGet:oBtn:hide()
      oGet:cBmpName:=""
   ELSE
      oGet:oBtn:show()
      oGet:cBmpName:="d:\fwh\bitmaps\delete.bmp"
   ENDIF

return .t.
 //----------------------------------------------------------------------//


It run ok onky when I write a text after I delete it init from ++ space


1) write a text

Image


2) press the button and the text is deleted

Image

3) I insert a new text , but it init from position 0 + 4

Image

then if I delete also , the text init from 0 position + 8

Re: show /hide a bitmap on a get

PostPosted: Mon Feb 27, 2023 8:43 pm
by Cgallegoa
Silvio:

Code: Select all  Expand view
    @ 1, 1 GET oGet VAR cSeek SIZE 50,10 PIXEL OF oDlg  ;
                 BITMAP "d:\fwh\bitmaps\delete.bmp" ;
                 ACTION ( cSeek := Space( 100 ),;
                               ChangeGetBtn(oGet,cseek),;    // ************* //
                               oGet:SetPos(0))    // ***  oGet:SetPos(0) puts de curson in pos 0 after click on Del bitmap *** //
 

Working ok on xHarbour and FWH 20.07
Image

Re: show /hide a bitmap on a get

PostPosted: Tue Feb 28, 2023 9:06 am
by Silvio.Falconi
Cgallegoa wrote:Silvio:

Code: Select all  Expand view
    @ 1, 1 GET oGet VAR cSeek SIZE 50,10 PIXEL OF oDlg  ;
                 BITMAP "d:\fwh\bitmaps\delete.bmp" ;
                 ACTION ( cSeek := Space( 100 ),;
                               ChangeGetBtn(oGet,cseek),;    // ************* //
                               oGet:SetPos(0))    // ***  oGet:SetPos(0) puts de curson in pos 0 after click on Del bitmap *** //
 

Working ok on xHarbour and FWH 20.07
Image


now run ok only I have a xbrowse search and before not run ok