Jump to content
Fivewin Brasil

Single Click no ListBox


Scooby

Recommended Posts

Bom Dia Senhores


Gostaria de tirar uma dúvida, estou usando a TwBrowse e em uma tela estou adicionando 2 listbox que serão a armazenado dados distintos, porém ambos os listbox possuem o mesmo padrão de botões e nesse caso estou tentando evitar redundância na tela e me surgiu uma duvida. Estou tentando colocar a regra, onde ao clicar sobre o listbox desejado e pressionar o botão "incluir" por exemplo, o sistema possa saber de qual lisbox foi o que estava selecionado.
Tentei executar o "bLClick", porém o sistema me retornou esse erro, gostaria de saber se alguém já passou por esse problema.

  Descrição do Erro: Advertência BASE/1005  Message not found: TWBROWSE:_BLCLICK

Chamada da Sequência: 
================= 
   Chamada De: TWBROWSE:ERROR(174)
   Chamada De: TWBROWSE:MSGNOTFOUND(208)
   Chamada De: TWBROWSE:_BLCLICK(0)
   Chamada De: DA0017(200)
   Chamada De: (b)MMENU(99)
   Chamada De: TMENU:COMMAND(561)
   Chamada De: TWINDOW:COMMAND(1199)
   Chamada De: TMDIFRAME:COMMAND(255)
   Chamada De: TMDIFRAME:HANDLEEVENT(0)
   Chamada De: _FWH(3450)
   Chamada De: WINRUN(0)
   Chamada De: TMDIFRAME:ACTIVATE(1152)
   Chamada De: MAIN(52)

Variaveis em uso: 
================= 
   Procedimento  Tipo   Valor
   ==========================
   (b)MAIN
     Param   1:    O    Classe: ERROR
   TWBROWSE:ERROR
     Param   1:    C    "Message not found"
     Param   2:    C    "TWBROWSE"
     Param   3:    C    "_BLCLICK"
     Param   4:    N    1005
     Local   1:    U    
     Local   2:    O    Classe: TWBROWSE
     Local   3:    N    16
   TWBROWSE:MSGNOTFOUND
     Param   1:    C    "_BLCLICK"
     Param   2:    O    Classe: TWBROWSE
   TWBROWSE:_BLCLICK
     Param   1:    A    Len:    2
   DA0017
     Param   1:    U    
     Param   2:    C    "          "
     Param   3:    C    "        "
     Param   4:    C    "        "
     Param   5:    C    "      "
     Param   6:    C    ""
     Local   1:    U    
   (b)MMENU
     Param   1:    O    Classe: TMENUITEM
   TMENU:COMMAND
     Param   1:    N    20013
     Local   1:    O    Classe: TMENU
     Local   2:    O    Classe: TMENUITEM
   TWINDOW:COMMAND
     Param   1:    N    20013
     Param   2:    N    0
     Local   1:    O    Classe: TMDIFRAME
     Local   2:    N    0
     Local   3:    N    20013
     Local   4:    N    0
   TMDIFRAME:COMMAND
     Param   1:    N    20013
     Param   2:    N    0
     Local   1:    O    Classe: TMDIFRAME
     Local   2:    L    .F.
   TMDIFRAME:HANDLEEVENT
     Param   1:    N    273
     Param   2:    N    20013
     Param   3:    N    0
   _FWH
     Param   1:    N    0
     Param   2:    N    273
     Param   3:    N    20013
     Param   4:    N    0
     Param   5:    N    1
     Local   1:    O    Classe: TMDIFRAME
   WINRUN
     Param   1:    N    264536
   TMDIFRAME:ACTIVATE
     Param   1:    C    "MAXIMIZED"
     Param   2:    U    
     Param   3:    U    
     Param   4:    U    
     Param   5:    U    
     Param   6:    B    {|| ... }
     Param   7:    U    
     Param   8:    B    {|| ... }
     Param   9:    U    
     Param  10:    U    
     Param  11:    U    
     Param  12:    U    
     Param  13:    U    
     Param  14:    U    
     Param  15:    U    
     Param  16:    U    
     Param  17:    B    {|| ... }
     Param  18:    U    
     Param  19:    U    
     Param  20:    L    .F.
     Local   1:    O    Classe: TMDIFRAME
     Local   2:    U    
     Local   3:    U   

 

Obrigado Antecipadamente

Link to comment
Share on other sites

   oBrwOse:SetArray(aTmpOse)
   oBrwOse:aJustify  :={.F.,.F.,.F.,.T.,.F.,.F.,.T.,.T.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.,.F.}
   oBrwOse:nLineStyle:=4
   oBrwOse:bLClick   :={||MsgYesNo("Teste1")}  <- Linha 200
   oBrwOse:bLDblClick:={|nRow,nCol|         IncIteOse(!(oBrwOse:nAt<Len(aTmpOse)),@lNovOse,@lNovIte,@vCodiOse,oDlgOse)}
   oBrwOse:bKeyChar  :={|nKey|If(nKey=13   ,IncIteOse(!(oBrwOse:nAt<Len(aTmpOse)),@lNovOse,@lNovIte,@vCodiOse,oDlgOse),Nil)}
   oBrwOse:bKeyDown  :={|nKey|If(nKey=VK_F3,IncIteOse(.T.,@lNovOse,@lNovIte,@vCodiOse,oDlgOse),;
                              If(nKey=VK_F4,IncIteOse(.F.,@lNovOse,@lNovIte,@vCodiOse,oDlgOse),Nil))}
   oBrwOse:nClrText  :={||If(aTmpOse[oBrwOse:nAt,26]="C",CLR_HBLUE,CLR_BLACK)}
   oBrwOse:nClrPane  :={||If(oBrwOse:nAt%2==0,CLR_AZUL3,CLR_WHITE)}    
 

Edited by Scooby
excesso de informação
Link to comment
Share on other sites

WBROWSE.PRG - tem certeza que não está usando classe de terceiros?

METHOD New( nRow, nCol, nWidth, nHeight, bLine, aHeaders, aColSizes, oWnd,;
            cField, uVal1, uVal2, bChange, bLDblClick, bRClick,;
            oFont, oCursor, nClrFore, nClrBack, cMsg, lUpdate, cAlias,;
            lPixel, bWhen, lDesign, bValid, bLClick, aActions ) CLASS TWBrowse
	   DEFAULT nRow := 0, nCol := 0, nHeight := 100, nWidth := 100,;
           oWnd := GetWndDefault(), oFont := oWnd:oFont, nClrFore := CLR_BLACK,;
           nClrBack := GetSysColor( COLOR_WINDOW ),;
           lUpdate  := .f., cAlias := Alias(), lPixel := .f.,;
           lDesign  := .f.
	   BrwClasses( ::ClassName )  // inserted in FWH 13.03
	   ::cCaption   = ""
   ::nTop       = nRow * If( lPixel, 1, BRSE_CHARPIX_H ) // 14
   ::nLeft      = nCol * If( lPixel, 1, BRSE_CHARPIX_W )  //8
   ::nBottom    = ::nTop + nHeight - 1
   ::nRight     = ::nLeft + nWidth - 1
   ::oWnd       = oWnd
   ::lHitTop    = .f.
   ::lHitBottom = .f.
   ::lFocused   = .f.
   ::lCaptured  = .f.
   ::lMChange   = .t.
   ::nRowPos    = 1
   ::nColPos    = 1
   ::nColAct    = 1
   ::nStyle     = nOr( WS_CHILD, WS_VSCROLL, WS_HSCROLL,;
                       WS_BORDER, WS_VISIBLE, WS_TABSTOP,;
                       If( lDesign, WS_CLIPSIBLINGS, 0 ) )
   ::nId        = ::GetNewId()
   ::cAlias     = cAlias
   ::bLine      = bLine
   ::lAutoEdit  = .f.
   ::lAutoSkip  = .f.
   ::lIconView  = .f.
   ::lCellStyle = .f.
   ::nIconPos   = 0
	   ::SetFilter( cField, uVal1, uVal2 )
	   ::bAdd       = { || ( ::cAlias )->( DbAppend() ), ::UpStable() }
	   ::aHeaders   = aHeaders
   ::aColSizes  = aColSizes
   ::nLen       = 0
   ::lDrag      = lDesign
   ::lCaptured  = .f.
   ::lMChange   = .t.
   ::bChange    = bChange
   ::bLClicked  = bLClick
   ::bLDblClick = bLDblClick
   ::bRClicked  = bRClick


 

Link to comment
Share on other sites

Estranho, eu só tenho exemplos assim>

FUNCTION GETCAMPOS()
	 local odlg
	 DEFINE DIALOG oDlg RESOURCE "TELA2" TITLE "Definicao de colunas"
	     REDEFINE LISTBOX oBrw1 ;
         FIELDS vt2[ oBrw1:nAt ] ID 103 OF oDlg SIZES 200 HEADERS "" ;
         ON DBLCLICK (AtuCmp(oBrw1:nAt,1),oBrw1:DrawSelect())
	         oBrw1:SetArray( vt2 )
         oBrw1:lMChange:= .f. // set false to prevent Mouse colm resize/drag
	     REDEFINE LISTBOX oBrw2 ;
         FIELDS vt3[ oBrw2:nAt ] ID 105 OF oDlg SIZES 200 HEADERS "" ;
         ON DBLCLICK (AtuCmp(oBrw2:nAt,2),oBrw2:DrawSelect())
	         oBrw2:SetArray( vt3 )
         oBrw2:lMChange:= .f. // set false to prevent Mouse colm resize/drag
	 ACTIVATE DIALOG oDlg CENTERED
	RETURN NIL


 

Link to comment
Share on other sites

Pois é Kapiaba, não utilizo nenhum prg de terceiros.. utilizo esse mesmo que postou..

Quanto a forma de trabalho que você postou acima, é o mesmo que utilizo aqui, porém nesse caso de controle o single click é uma exceção que estamos criando, e pra esse recurso funcionar eu precisaria mesmo desse recurso para conseguir controlar os botões de acordo com o browse selecionado.

 

Link to comment
Share on other sites

Bom Dia aferra

Então, coloquei o recurso que você falou acima, ele executa ao inicializar a tela, porém se eu mudo o foco pro Listbox ao lado, ele não executa novamente o bloco de código.
Pra ficar mais fácil até coloquei a imagem abaixo da tela, pra ver se fica mais fácil o entendimento.

https://1drv.ms/i/s!AmBm4nJiUvnr4yePW6nex8N2wFwv

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...