xBrowse - sobre uso de WITH OBJECT oBrw:TextoColumna

xBrowse - sobre uso de WITH OBJECT oBrw:TextoColumna

Postby MarioG » Thu Nov 18, 2010 3: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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: xBrowse - sobre uso de WITH OBJECT oBrw:TextoColumna

Postby Carlos Mora » Fri Nov 19, 2010 1: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: Select all  Expand view

      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"
Carlos Mora
 
Posts: 989
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: xBrowse - uso de WITH OBJECT oBrw:TextoColumna - SOLUCIONADO

Postby MarioG » Fri Nov 19, 2010 1: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
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 67 guests