FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour xBrowser array add/del elements
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
xBrowser array add/del elements
Posted: Thu Mar 06, 2008 09:24 AM
Hello Antonio,
How to prevent that after add a new element the header disappears.

Regrads,
Otto

Otto,

Here you have samples\mallorca.prg modified with your requirements. Right click on it to show a popup menu:
Code:

# INCLUDE "FiveWin.ch"
# INCLUDE "XBrowse.ch"
//-------------
FUNCTION Main()
//-------------
LOCAL oWnd,aLin:={},i,oBrw
FOR i:=1 TO 6
AAdd(aLin,{i,'Descripción '+Str(i)})
NEXT
DEFINE WINDOW oWnd
//--Definición Objeto TxBrowse
oBrw:=TxBrowse():New(oWnd)
oBrw:SetArray(aLin)
oBrw:nColDividerStyle := LINESTYLE_BLACK
oBrw:nRowDividerStyle := LINESTYLE_BLACK
oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL

oBrw:aCols[1]:cHeader := 'Cod'
oBrw:aCols[1]:cEditPicture := '@k 99'
oBrw:aCols[1]:bClrEdit := oBrw:bClrStd
oBrw:aCols[1]:bOnPostEdit := {|o,x| aLin[ oBrw:nArrayAt,1] := x }
oBrw:aCols[1]:nEditType := EDIT_GET
oBrw:aCols[1]:bEditValid := {|oGet| Valida( oGet ) } //<========
//--
oBrw:aCols[2]:cHeader := 'Descripción'
oBrw:aCols[2]:bClrEdit := oBrw:bClrStd
oBrw:aCols[2]:bOnPostEdit := {|o,x| aLin[ oBrw:nArrayAt,2] := x }
oBrw:aCols[2]:nEditType := EDIT_GET
//--
oBrw:CreateFromCode()
oBrw:bRClicked = { | nRow, nCol | ShowPopup( nRow, nCol, oBrw, aLin ) }
oWnd:=oBrw

ACTIVATE WINDOW oWnd

RETURN NIL
//-----------------------------------
STATIC FUNCTION Valida( oGet )
//-----------------------------------
LOCAL lValRet:=.T.
local bValid := oGet:bValid
local nVal := oGet:Value()

oGet:bValid = nil

IF nVal>6
// MsgAlert('No puede ser mayor que 6')
lValRet:=.f.
ENDIF

oGet:bValid = bValid
RETURN lValRet

function ShowPopup( nRow, nCol, oBrw, aLin )

local oMenu

MENU oMenu POPUP
MENUITEM "Add" ACTION ( AAdd( aLin, { AllTrim( Str( Len( aLin ) + 1 ) ), "New item" } ), oBrw:SetArray( aLin ), oBrw:Refresh() )
MENUITEM "Del" ACTION ( ADel( aLin, oBrw:nArrayAt ), ASize( aLin, Len( aLin ) - 1 ), oBrw:SetArray( aLin ), oBrw:Refresh() )
MENUITEM "Select" ACTION ( oBrw:GoTop(), oBrw:nArrayAt := 3, oBrw:Refresh() )
ENDMENU

ACTIVATE POPUP oMenu WINDOW oBrw AT nRow, nCol

return nil


_________________
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
xBrowser array add/del elements
Posted: Thu Mar 06, 2008 04:05 PM

Mr Otto

Do not use oBrw:SetArray after adding or deleting likes. Simply say Refresh

Regards



G. N. Rao.

Hyderabad, India
Posts: 4043
Joined: Wed Dec 19, 2007 06:40 PM
Popup in xBrowse
Posted: Thu Mar 06, 2008 05:33 PM
Hello Otto,

I used that sample for a normal browse ( no Array )
You can find it at Topic => menu popup at....



Regards
uwe :-) [/img]
Since 1995 ( the first release of FW 1.9 )

i work with FW.

If you have any questions about special functions, maybe i can help.
Posts: 6983
Joined: Fri Oct 07, 2005 07:07 PM
xBrowser array add/del elements
Posted: Thu Mar 06, 2008 05:41 PM

Hello NageswaraRao,
thank you very much for you help.
All is working as suspected.
Regards,
Otto

Continue the discussion