Scooby Posted August 3, 2017 Report Share Posted August 3, 2017 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 3, 2017 Report Share Posted August 3, 2017 Mostre esse fonte: Chamada De: DA0017(200) Quote Link to comment Share on other sites More sharing options...
Scooby Posted August 3, 2017 Author Report Share Posted August 3, 2017 (edited) 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 August 3, 2017 by Scooby excesso de informação Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 3, 2017 Report Share Posted August 3, 2017 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 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 3, 2017 Report Share Posted August 3, 2017 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 Quote Link to comment Share on other sites More sharing options...
Scooby Posted August 3, 2017 Author Report Share Posted August 3, 2017 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. Quote Link to comment Share on other sites More sharing options...
aferra Posted August 4, 2017 Report Share Posted August 4, 2017 Tente assim: oBrwOse:bChange := {|| MsgStop( "Agora sim" ) } Quote Link to comment Share on other sites More sharing options...
Scooby Posted August 4, 2017 Author Report Share Posted August 4, 2017 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 Quote Link to comment Share on other sites More sharing options...
Scooby Posted August 4, 2017 Author Report Share Posted August 4, 2017 Então gente Encontrei a resposta do problema... oBrwOse:bLClicked :={||(lClkOse:=.T.,lClkSae:=.F.)} era só colocar a chamada assim, que o single click deu a possibilidade de permitir executar uma ação.. Vlw kapiaba 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.