FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour xBrowse - sobre uso de WITH OBJECT oBrw:TextoColumna
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
xBrowse - sobre uso de WITH OBJECT oBrw:TextoColumna
Posted: Thu Nov 18, 2010 03:02 PM
Gente:
En mi forma de ver, trabajar con WITH OBJECT ... me resulta muy prolijo y claro al momento de revisar codigo.
Aunque me encuentro con este pequeño problema; si defino pro ejemplo:

@ 0,0 XBROWSE oBrw ;
COLUMNS "State", "City", "First", "Married", "HireDate", "Age", "Salario Mensual", "Last" ;
....
luego no puedo definir WITH OBJECT para la columna resaltada, usando dicho nombre; o si?, como?
obviamente, quiero decir, basado en el nombre de la columna; se que lo podría remplazar por: oBrw:aCols[ 7 ]
o esta es la única manera?

muchas gracias
Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Re: xBrowse - sobre uso de WITH OBJECT oBrw:TextoColumna
Posted: Fri Nov 19, 2010 01:26 PM
Hola Mario,

compartimos el gusto por el uso del With Object. El problema es que al usar comandos nunca declarás ningun objeto de forma que lo puedas referenciar directamente. Fijate como estan los comandos GET que te permiten incluir el objeto del control, con lo cual despues uno lo puede manipular. En el caso de las columnas, si declaras todo con el comando XBROWSE se te va a complicar.
En lo personal las declaraciones de XBrowse siempre las hago con WITH OBJECT:

Code (fw): Select all Collapse
      With Object oBrowse:= TXBrowse():New( oDlg )

         :lHScroll:= .F.
         :lVScroll:= .F.
         :CreateFromResource( 1200 )
         :cAlias:= "Asientos"
      End With

      With Object ( oCol := oBrowse:AddCol() )
         :cHeader       := 'Código'
         :bStrData      := ;
         :bEditValue    := {|| Asientos->CodigoP }
         :bEditValid    := {| oGet, uVal | AsientosValidaCuenta( oGet, uVal ) }
         :bOnPostEdit   := {| o, x | Field->CodigoP:= x, SumaAsientos() }
         :AddResource("I16_FLASH")
         :nBtnBmp       := 1
         :nWidth        := 90
         :nEditType( EDIT_GET_BUTTON )
      EndWith
      With Object oCol := oBrowse:AddCol()
         :cHeader       := 'Concepto'
         :bStrData      := ;
         :bEditValue    := {|| Asientos->Concepto }
         :bEditValid    := {| oGet, uVal | AstoValidaConcepto( oGet, uVal, aConce, cConcepto ) }
         :bOnPostEdit   := {| o, x | Field->Concepto:= x }
         :nWidth        := 419
         :nEditType(1)
      EndWith


Así siempre tenemos todo el control.
Si la idea es referenciar a la columna por el Header, podrías hacerte una funcioncita que busque un Header en aCols...
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
“If you think education is expensive, try ignorance"
Posts: 1380
Joined: Fri Oct 14, 2005 01:28 PM
Re: xBrowse - uso de WITH OBJECT oBrw:TextoColumna - SOLUCIONADO
Posted: Fri Nov 19, 2010 01:51 PM

Gracias Carlos
Encontré, en los samples, columnas referenciadas por si titulo y me resultó muy claro, como dije, a la hora de ubicar para una corrección o, pasado el tiempo, para hacer algún tipo de cambio.
Obviamente que rapidamente choque con las palabras acentuadas o, como expresé palabras compuestas.

Sin dudas que un código como el que mostrás es de lo mas 'limpio' y legible... no voy a seguir para que no te pongas :oops:

Saludos

:)

Resistencia - "Ciudad de las Esculturas"

Chaco - Argentina

Continue the discussion