Do Clipper ao Harbour(x) - Dicas e Tutoriais -> Este blog é dedicado a todos Analistas e Programadores interessados em Software Livre, programação xBase e tudo o que for de relevância. "A idéia inicial é criar um ponto de reunião e de troca de experiências para programadores, analistas, técnicos e outros entusiastas de computação de um modo geral".
quarta-feira, 24 de novembro de 2010
Dica para refresh da nova versão do TSBrowse
oBr:SetFocus()
oBr:Reset()
oBr:Refresh(.T.)
oBr:ResetBarPos(.T.)
oBr:BuguP()
Substituam por:
oBr:SetFocus()
oBr:Refresh(.T.)
oBr:ResetVScroll(.T.)
Caso contrário não serão mostradas atualizações em pesquisas.
sexta-feira, 19 de novembro de 2010
Novos Métodos do TSBrowse
METHOD AddColumn( oColumn ) Adiciona uma coluna para o Browse, préviamente definido com o método construtor de colunas TSColumn:New(), ou com o comando DEFINE COLUMN oColumn ..
METHOD SetColumn( oColumn, nCol )
METHOD AddSuperHead( nFromCol, nToCol, uHead, nHeight, aColors, l3dLook, uFont, uBitMap, lAdjust, lTransp, lNoLines, nHAlign, nVAlign )
METHOD BeginPaint() INLINE If( ::lRepaint, Super:BeginPaint(), 0 ) Uso interno, Chamado a partir do método Display().
METHOD BugUp() INLINE ::UpStable() Chama o método UpStable().
METHOD BiClr( uClrOdd, uClrPair )
METHOD Bof() INLINE If( ::bBoF != Nil, Eval( ::bBof ), .F. ) //V90
METHOD ChangeFont( hFont, nColumn, nLevel )
METHOD DbSkipper( nToSkip ) Usado internamente; controla o ponteiro do registro do database.
METHOD Default() Uso interno; ações de inicialização do Browser.
METHOD Del( nItem )
METHOD DeleteRow( lAll )
METHOD DelColumn( nPos )
METHOD Destroy() Uso interno; Destrói o controle Browse.
METHOD Display() Uso interno- Exibe o Browse na primeira vez.
METHOD DrawFooters() INLINE ::DrawHeaders( .T. ) Desenha o Footers.
// MESSAGE DrawIcon METHOD _DrawIcon( nIcon, lFocused )
METHOD DrawIcons()
METHOD DrawLine( xRow ) Pinta a linha ativa ou nRow.
METHOD DrawPressed( nCell, lPressed )
METHOD DrawSelect() Pinta o cursor na linha ativa.
METHOD DrawSuper() Desenha os Super-Headers.
METHOD DrawHeaders( lFooters ) Desenha Headers, Footers, e Super-Headers.
METHOD Edit( uVar, nCell, nKey, nKeyFlags, cPicture, bValid, nClrFore, nClrBack )
METHOD EditExit( nCol, nKey, uVar, bValid, lLostFocus )
METHOD EndPaint() INLINE If( ::lRePaint, Super:EndPaint(), ( ::lRePaint := .T., 0 ) ) Uso interno, Chamado a partir do método Display().
METHOD Eof() INLINE If( ::bEoF != Nil, Eval( ::bEof ), .F. ) //V90
METHOD Excel2( cFile, lActivate, hProgress, cTitle, lSave )
METHOD ExcelOle( cXlsFile, lActivate, hProgress, cTitle, hFont, lSave, bExtern, aColSel, bPrintRow )
METHOD Exchange( nCol1, nCol2 ) INLINE ::SwitchCols( nCol1, nCol2), ::SetFocus() Troca a posição das colunas nCol1 e nCol2.
METHOD ExpLocate( cExp )
METHOD ExpSeek( cExp, lSoft )
METHOD FreezeCol( lNext )
METHOD GetAllColsWidth() //V90
METHOD GetColSizes() INLINE If( ValType( ::aColSizes ) == "A", ::aColSizes, Eval( ::aColSizes ) ) Retorna uma matriz contendo as larguras das colunas em pixels.
METHOD GetColumn( nCol ) Retorna uma referencia ao objeto TSColumn correspondente a nCol.
METHOD GetDlgCode( nLastKey )
METHOD GetRealPos( nRelPos )
METHOD GetTxtRow( nRowPix ) INLINE RowFromPix( ::hWnd, nRowPix, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 ))
METHOD GoBottom() Posiciona o cursor na última linha do Browse, movendo o ponteiro de registros para o último registro do database, ou para o último elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ). É executado quando as teclas Ctrl+End ou Ctrl+PgDn são pressionadas, ou quando arrastando para o fim da barra de rolagem vertical.
METHOD GoDown() Posiciona o cursor uma linha abaixo movendo o ponteiro para o próximo registro no database, ou para o próximo elemento em outros objetos. É executado quando a tecla Down (seta para baixo) é pressionada.
METHOD GoEnd() Posiciona o cursor na última coluna visível na tela.
METHOD GoHome() Posiciona o cursor na primeira coluna visível na tela.
METHOD GoLeft() Move o cursor uma coluna para a esquerda.
METHOD GoNext() Move o cursor para a próxima coluna editável para a direita, ou para a próxima coluna editável da próxima linha.
METHOD GoPos( nNewRow, nNewCol ) Move o cursor para a linha definida em nNewRow e coluna definida em nNewCol.
METHOD GoRight() Move o cursor uma coluna para a direita.
METHOD GotFocus( hCtlLost ) Uso interno, executa ações ao receber o foco no Browse, entre as quais se destaca a avaliação do blóco de código definido em bGotFocus.
METHOD GoTop() Posiciona o cursor na primeira linha do Browse, movendo o ponteiro de registro para primeiro registro no database, ou para o primeiro elemento de outros objetos ( Array, oDbf, Text, Tree, oCtx ).
METHOD GoUp() Posiciona o cursor uma linha acima, movendo o ponteiro para o registro anterior do database, ou para elemento anterior de outros objetos.
METHOD HandleEvent( nMsg, nWParam, nLParam )
METHOD HiliteCell( nCol, nColPix ) Posiciona o cursor na coluna definida em nCol. Se usado quando da ativação do Browse, será exibido com o cursor nesta coluna.
METHOD HScroll( nWParam, nLParam )
METHOD HThumbDrag( nNewCol )
// METHOD Init( hDlg ) INLINE ::Initiate( hDlg )
// METHOD Initiate( hDlg ) INLINE Super:Initiate( hDlg ), ::Default()
METHOD InsColumn( nPos, oColumn ) Insere uma coluna (object TSColumn oColumn ) na posição definida em nPos.
METHOD Insert( cItem, nAt )
METHOD AddItem( cItem )
METHOD IsColVisible( nCol )
METHOD IsColVis2( nCol )
METHOD IsEditable( nCol ) INLINE ::lCellBrw .and. ::aColumns[ nCol ]:lEdit .and. ( ::aColumns[ nCol ]:bWhen == Nil .or.Eval(::aColumns[ nCol ]:bWhen, Self ) )
METHOD KeyChar( nKey, nFlags ) Uso interno. Executa ações dependendo da tecla pressionada nKey. Avalia o código de bloco bKeyChar.
METHOD KeyDown( nKey, nFlags ) Uso interno. - Similar a KeyChar(). Avalia o código de bloco bKeyDown.
METHOD KeyUp( nKey, nFlags )
METHOD LButtonDown( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o clique no botão esquerdo do mouse. Avalia o código de bloco bLClick.
METHOD LButtonUp( nRowPix, nColPix, nFlags )
METHOD lCloseArea() INLINE If( ::lIsDbf .and. ! Empty( ::cAlias ), ( ( ::cAlias )->( DbCloseArea() ), ::cAlias := "", .T. ), .F. )
METHOD LDblClick( nRowPix, nColPix, nKeyFlags ) Uso interno.- Executa ações relacionadas com o duplo clique no botão esquerdo do mouse. Avalia o código de bloco bLDblClick.
METHOD lEditCol( uVar, nCol, cPicture, bValid, nClrFore, nClrBack ) Executa a edição de dados das células. Você pode usar esse método de seu programa em funções de edição personalizadas. Este método retornará um valor de .T. (True - Verdadeiro) se a edição finalizar normalmente, e .F. (False - Falso) se o usuário cancelar a edição.
METHOD lIgnoreKey( nKey, nFlags )
METHOD LoadFields( lEditable )
METHOD LoadRecordSet() //V90
METHOD LoadRelated( cAlias, lEditable, aNames, aHeaders )
METHOD Look3D( lOnOff, nColumn, nLevel, lPhantom )
METHOD LostFocus( hCtlFocus ) Uso interno. É ativado quando o Browse perde o foco. Avalia o código de bloco bLostFocus.
METHOD lRSeek( uData, nFld, lSoft ) //V90
METHOD MButtonDown( nRow, nCol, nKeyFlags ) Uso interno.- É ativado quando o botão central do mouse é pressionado (em mouses de 3 botões). Avalia o código de bloco bMButtonDown, recebendo os mesmos parametros.
METHOD MouseMove( nRowPix, nColPix, nKeyFlags )
METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos )
METHOD MoveColumn( nColPos, nNewPos ) Muda a posição da coluna dentro do Browse, se a variável ::lMoveCols for .T.
METHOD nAtCol( nColPixel, lActual )
METHOD nAtIcon( nRow, nCol )
METHOD nColCount() INLINE Len( ::aColumns )
METHOD nField( cName ) //V90
METHOD nLogicPos() Retorna a posição lógica para o índice ativo.
METHOD nRowCount() INLINE CountRows( ::hWnd, ::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ::lFooting .and. ::lDrawFooters, ::nHeightFoot, 0 ),If( ::lDrawHeaders, ::nHeightSuper, 0 ),If( ::lDrawSpecHd, ::nHeightSpecHd, 0 )) Uso interno.- Conta as linhas exibíveis do Browse.
METHOD PageUp( nLines ) Move o cursor e o ponteiro de registros uma página acima. É executado quando é pressionada a tecla PgUp.
METHOD PageDown( nLines ) Move o cursor e o ponteiro de registros uma página abaixo. É executado quando é pressionada a tecla PgDn.
METHOD Paint() Uso interno.- Pinta o Browse. Chamado a partir do método Display().
METHOD PanHome() Move o cursor para a primeita coluna da linha corrente.É nativado quando pressionadas as teclas Shift+LeftArrow.
METHOD PanEnd() Move o cursor para a última coluna da linha corrente. É ativado quando pressionadas as teclas Shift+RightArrow.
METHOD PanLeft() Move o cursor para a primeira coluna visível da linha corrente. É ativado quando a tecla Home é pressionada.
METHOD PanRight() Move o cursor para a última coluna visível da linha corrente. É ativado quando a tecla End é pressionada.
METHOD PostEdit( uTemp, nCol, bValid )
METHOD RButtonDown( nRowPix, nColPix, nFlags ) Uso interno.- Executa açoes relacionadas com o clique no botão direito do mouse. Avali o código de bloco bRClicked. Se o clique é feito na area do cabeçalho (Header), o TSBrowse exibirá um menu PopUp com opções de coluna e movimento de cursor.
METHOD Refresh( lPaint, lRecount ) //V90
METHOD RelPos( nLogicPos )
METHOD Report( cTitle, aCols, lPreview, lMultiple, lLandscape, lFromPos )
METHOD Reset( ) //V90 Move o cursor e o ponteiro de registro para o topo do Browse e executa o método Refresh(.T.)
METHOD ResetSeek()Restaura o valor da variável cSeek para nulo (Null), assim uma nova pesquisa incremental pode ser executada.
METHOD ResetVScroll( lInit ) //V90
METHOD ReSize( nSizeType, nWidth, nHeight )
METHOD TSBrwScroll( nDir ) INLINE TSBrwScroll( ::hWnd, nDir, ::hFont,::nHeightCell, If( ::lDrawHeaders, ::nHeightHead, 0 ),If( ValType( ::lDrawFooters ) == "L" .and.::lDrawFooters ,::nHeightFoot, 0 ), ::nHeightSuper, ::nHeightSpecHd )
METHOD Seek( nKey ) Este método faz todo o trabalho da pesquisa incremental.
METHOD Set3DText(lOnOff, lRaised, nColumn, nLevel, nClrLight, nClrShadow )
METHOD SetAlign( nColumn, nLevel, nAlign )
METHOD SetAppendMode( lMode ) Ativa a inserção automática após o ultimo registro (Append).
METHOD SetArray( aArray, lGenCols, aHead ) //V90
METHOD SetBtnGet( nColumn, cResName, bAction, nBmpWidth )
METHOD SetColMsg( cMsg, cEditMsg, nCol )
METHOD SetColor( xColor1, xColor2, nColumn )
METHOD SetColSize( nCol, nWidth )
METHOD SetColumns( aData, aHeaders, aColSizes )
METHOD SetDeleteMode( lOnOff, lConfirm, bDelete, bPostDel )
METHOD SetHeaders( nHeight, aCols, aTitles, aAlign , al3DLook, aFonts, aActions )
METHOD SetData( nColumn, bData, aList )
#ifdef _TSBFILTER7_
METHOD SetFilter( cField, uVal1, uVal2 ) //deleted in V90
#endif
METHOD SetFont( hFont )
METHOD SetIndexCols( nCol1, nCol2, nCol3, nCol4, nCol5 )
METHOD SetItems( aItems ) INLINE ::SetArray( aItems, .T. )
METHOD SetDBF( )
METHOD SetOrder( nColumn, cPrefix, lDescend )
METHOD SetRecordSet( oRSet, lEditable ) //V90
METHOD SetSelectMode( lOnOff, bSelected, uBmpSel, nColSel, nAlign )
METHOD SetSpinner( nColumn, lOnOff, bUp, bDown, bMin, bMax )
METHOD ShowSizes()
METHOD Skip( n )
METHOD SortArray( nCol, lDescend )
METHOD SwitchCols( nCol1, nCol2 )
METHOD SyncChild( aoChildBrw, abAction )
METHOD UpAStable()
METHOD UpRStable( nRecNo ) //V90
METHOD UpStable()
METHOD Proper( cString ) Converte o texto cText em iniciais maiúsculas.
METHOD VertLine( nColPixPos, nColInit, nGapp )
METHOD VScroll( nWParam, nLParam )
METHOD Enabled(lEnab) // JP 1.55
METHOD HideColumns( nColumn , lHide) //JP 1.58
METHOD AutoSpec(nCol)
METHOD RefreshARow(xRow) //JP 1.88