Caso Raro con esta Clase un una matriz

Caso Raro con esta Clase un una matriz

Postby ruben Dario » Tue Nov 22, 2011 9:43 pm

Caso Raro con esta Clase un una matriz, tengo tres matrices actualizo una y despues otra asi etc..
Cuando actualizo la primera le hago un seguimiento supuesta mente debe actualizar la que estoy indicado y actualiza las demas, adjunto el codigo


Saludos al Forum

Code: Select all  Expand view



PUBLIC oP20:= TApp01():New()

   oP20:madepto := oP20:maciuda := oP20:makarrio:= {}
   oP20:sigrabo := oP20:sigrab1 := oP20:sigrab2 := oP20:sigrab3 := 0

?"depto  "+str(LEN(oP20:madepto),3,0)+" Ciudad"+str(LEN(oP20:maciuda),3,0)+" Barrio"+str(LEN(oP20:makarrio),3,0)
   oP20:IniMAtriz(1);oP20:AddMAtriz(1)
?"depto  "+str(LEN(oP20:madepto),3,0)+" Ciudad"+str(LEN(oP20:maciuda),3,0)+" Barrio"+str(LEN(oP20:makarrio),3,0)
    oP20:madepto , pero veo que las llena las otras dos y asi cade vez , y debe actualziada solamente la matriz oP20:madepto
   oP20:IniMAtriz(2);oP20:AddMAtriz(2)
?"2-jjjj depto  "+str(LEN(oP20:madepto),3,0)+" Ciudad"+str(LEN(oP20:maciuda),3,0)+" Barrio"+str(LEN(oP20:makarrio),3,0)+" uuuuuu"
   oP20:IniMAtriz(3);oP20:AddMAtriz(3)
?"3-jjjj depto  "+str(LEN(oP20:madepto),3,0)+" Ciudad"+str(LEN(oP20:maciuda),3,0)+" Barrio"+str(LEN(oP20:makarrio),3,0)+" uuuuuu"



METHOD IniMAtriz(opx) CLASS TApp01
   if opx=1
    ::m1[1]:=Space(1);::m1[2]:=Space(03);::m1[3]:=Space(40);::m1[4]:=.t.
    ::m1[5]:=Space(3);::m1[6]:=Space(3);::m1[7]:=Space(3)
  elseif opx=2
    ::m2[1]:=Space(1);::m2[2]:=Space(03);::m2[3]:=Space(40);::m2[4]:=.t.
    ::m2[5]:=Space(3);::m2[6]:=Space(3);::m2[7]:=Space(3)
  elseif opx=3
    ::m3[1]:=Space(1);::m3[2]:=Space(03);::m3[3]:=Space(40);::m3[4]:=.t.
    ::m3[5]:=Space(3);::m3[6]:=Space(3);::m3[7]:=Space(3)
  endif
 Return Nil

METHOD AddMAtriz(opx) CLASS TApp01
    if opx=1
       AADD(::madepto,{(::m1[1]),(::m1[2]),(::m1[3]),(::m1[4]),(::m1[2]),(::m1[2]),(::m1[2]) } )
   elseif opx=2
       AADD(::maciuda,{(::m2[1]),(::m2[2]),(::m2[3]),(::m2[4]),(::m2[2]),(::m2[2]),(::m2[2]) } )
   elseif opx=3
       AADD(::makarrio,{(::m3[1]),(::m3[2]),(::m3[3]),(::m3[4]),(::m3[2]),(::m3[2]),(::m3[2]) } )
   endif
 Return Nil






 
Last edited by ruben Dario on Tue Nov 22, 2011 10:11 pm, edited 2 times in total.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1066
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia

Re: Caso Raro con esta Clase un una matriz

Postby Patricio Avalos Aguirre » Tue Nov 22, 2011 9:52 pm

Hola

falta como creas las matrices..

puede que tengas que usar aClone
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: Caso Raro con esta Clase un una matriz

Postby antolin » Wed Nov 23, 2011 7:25 am

Ruben, puede parecer una tontería, pero cuando haces:
Code: Select all  Expand view
oP20:madepto := oP20:maciuda := oP20:makarrio:= {}
 
Lo mismo le estás asignando una misma dirección de memoria a las tres matrices. A mi me ocurrió algo parecido, pues, internamente, las matrices no se manejan igual que las demás variables; por ejemplo, siempre pasan por referencia en las funciones, y supongo que en los objetos también.

Prueba esto (aunque parzca una tontería):
Code: Select all  Expand view
oP20:madepto := {}
oP20:maciuda := {}
oP20:makarrio:= {}
 

Espero que funcione

Saludos.
Peaaaaaso de foro...
FWH 2007 - xHarbour - BCC55
antolin
 
Posts: 498
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Caso Raro con esta Clase un una matriz

Postby ruben Dario » Wed Nov 23, 2011 6:39 pm

Gracias Antolin, este era el problema ya funciona.
Ruben Dario Gonzalez
Cali-Colombia
rubendariogd@hotmail.com - rubendariogd@gmail.com
User avatar
ruben Dario
 
Posts: 1066
Joined: Thu Sep 27, 2007 3:47 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 83 guests