He tratado de implementar las soluciones propuestas utilizando observadores pero sin resultado..
Lo que me gustaría hacer es que al hacer doble click en la tableview me llame el procedure muestralote()...
El código de la clase es el siguiente (no es más que un formulario con un tableview que recibe ciertos valores y los muestra):
INHERITS Form
PRIVATE tablaestrategia AS NEW TableView(ME)
PRIVATE $observer AS Observer
PUBLIC SUB mostrar(index_estrategia AS Integer)
DIM e AS NEW estrategia
DIM fila AS Integer = 0
DIM columna AS Integer = 0
e = variables.arrayestrategias[index_estrategia]
tablaestrategia.Rows.Count = e.almacen_patas.Count
tablaestrategia.Columns.Count = 6
tablaestrategia.Rows.Height = 25
tablaestrategia.Columns.Width = 150
tablaestrategia.Height = 400
tablaestrategia.Width = 800
DO WHILE fila < e.almacen_patas.Count
tablaestrategia[fila, columna].Text = e.almacen_patas[fila].nombre
columna = columna + 1
tablaestrategia[fila, columna].Text = e.almacen_patas[fila].operacion
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].cantidad)
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].valor)
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].estado_pata)
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].existe_error_pata)
columna = 0
fila = fila + 1
LOOP
tablaestrategia.Mode = 1
ME.Show
ME.W = 1000
ME.H = 500
$observer = NEW Observer(tablaestrategia)
END
PUBLIC SUB $observer_DblClick()
muestralote()
END
PRIVATE SUB muestralote()
DIM ml AS NEW Fmuestralote
ml.mostrar(tablaestrategia[tablaestrategia.row, 0].text)
END
PRIVATE tablaestrategia AS NEW TableView(ME)
PRIVATE $observer AS Observer
PUBLIC SUB mostrar(index_estrategia AS Integer)
DIM e AS NEW estrategia
DIM fila AS Integer = 0
DIM columna AS Integer = 0
e = variables.arrayestrategias[index_estrategia]
tablaestrategia.Rows.Count = e.almacen_patas.Count
tablaestrategia.Columns.Count = 6
tablaestrategia.Rows.Height = 25
tablaestrategia.Columns.Width = 150
tablaestrategia.Height = 400
tablaestrategia.Width = 800
DO WHILE fila < e.almacen_patas.Count
tablaestrategia[fila, columna].Text = e.almacen_patas[fila].nombre
columna = columna + 1
tablaestrategia[fila, columna].Text = e.almacen_patas[fila].operacion
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].cantidad)
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].valor)
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].estado_pata)
columna = columna + 1
tablaestrategia[fila, columna].Text = CString(e.almacen_patas[fila].existe_error_pata)
columna = 0
fila = fila + 1
LOOP
tablaestrategia.Mode = 1
ME.Show
ME.W = 1000
ME.H = 500
$observer = NEW Observer(tablaestrategia)
END
PUBLIC SUB $observer_DblClick()
muestralote()
END
PRIVATE SUB muestralote()
DIM ml AS NEW Fmuestralote
ml.mostrar(tablaestrategia[tablaestrategia.row, 0].text)
END