Page 1 of 1
quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 10:14 am
by jefe
soy totalmente novato, hace tan sólo dos dias que he conseguido compilar.
Vereis quiero hacer esto.
AVENIDA MADRID
1 3 5 7 9 10 12 14 16
18 20 22 24 26 etc
RAMON Y CAJAL
2 4 6 8 10 12 14 16 etc
Bueno lo que quiero saber como hacer para que los numeros se puedan marcar o desmarcar pulsandolos con el ratón.
La visualización ya la he hecho, pero mucho me temo que no vale, Pongo el código
Code: Select all
#include "fivewin.ch"
function main()
local oDlg
local fila,col,cCal
fila:=4
col:=2
cCal:=""
use bar2 alias hojaruta // esto es una base de datos que contiene calles y portales
DEFINE dialog oDlg FROM 1, 1 TO 42, 100 ;
TITLE "Nuevo cliente"
go top
skip 1
cCal=hojaruta->calle
@2,2 say cCal
do while .not. eof()
@fila,col say hojaruta->portal
col=col+3
if col>40
fila=fila+1
col=2
endif
skip 1
if hojaruta->calle<>cCal
fila=fila+2
col=2
cCal=hojaruta->calle
@fila,2 say hojaruta->calle
fila=fila+2
endif
enddo
ACTIVATE window oDlg
return nil
Gracias de antemano.
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 2:10 pm
by jrestojeda
Hola...
A que te refieres con marcar y desmarcar los números??
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 3:24 pm
by jefe
gracias por contestar, me refiero a que cuando pulses con el ratón sobre un número de portal este quede seleccionado y cuando lo vuelva a pulsar se desmarque.
por ejemplo
RAMON Y CAJAL
1 2 3 4 5 6 7 8 10 12
CUANDO PULSE el numero 10 que este se marque con otro color.
me imagino que se tiene que hacer con un array, pero como no se como convertir esos numeros a objetos para hacerlo.
Espero haberme explicado bien.
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 4:21 pm
by jrestojeda
Hola amigo...
Prueba lo siguiente:
Code: Select all
@ nRow,nCol SAY oSay // Donde oSay es el objeto asociado.
Espero te sirva.
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 4:37 pm
by Patricio Avalos Aguirre
Hola
podrias usar los Say con lWantClick
Code: Select all
DEFINE CURSOR oCursor HAND
REDEFINE SAY oSay[1] ID 201 OF oDlg PROMPT "1" COLOR CLR_BLUE
REDEFINE SAY oSay[2] ID 202 OF oDlg PROMPT "2" COLOR CLR_BLUE
aEval( oSay, { |x| x:lWantClick := .t., x:oCursor := oCursor, x:bLClicked := { || tufuncionaevaluar() } )
espero que te sirva..
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 6:11 pm
by jefe
gracias a los dos me pongo con ello, aver si soy capaz
un saludo.
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 6:50 pm
by jefe
jrestojeda wrote:Hola amigo...
Prueba lo siguiente:
Code: Select all
@ nRow,nCol SAY oSay // Donde oSay es el objeto asociado.
Espero te sirva.
Patricio Avalos Aguirre wrote:Hola
podrias usar los Say con lWantClick
Code: Select all
DEFINE CURSOR oCursor HAND
REDEFINE SAY oSay[1] ID 201 OF oDlg PROMPT "1" COLOR CLR_BLUE
REDEFINE SAY oSay[2] ID 202 OF oDlg PROMPT "2" COLOR CLR_BLUE
aEval( oSay, { |x| x:lWantClick := .t., x:oCursor := oCursor, x:bLClicked := { || tufuncionaevaluar() } )
espero que te sirva..
Me podeis decir con que manuales habeis empezado, porque yo los que tengo dan por sentado muchas cosas y no me entero de nada.
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 6:52 pm
by Daniel Garcia-Gil
Saludos Jefe...
Es algo muy simple...
Recopilando un poco lo aqui expuesto
Code: Select all
@ 20,20 say oSay prompt "Test" of oWnd pixel COLOR CLR_BLACK
oSay:bLClicked := {| nRow, nCol, nFlags, oSay | ;
if ( oSay:nClrText == CLR_BLACK, oSay:nClrText := CLR_YELLOW, oSay:nClrText := CLR_BLACK ), oSay:Refresh() }
oSay:lWantClick := .t.
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 6:59 pm
by jefe
Daniel Garcia-Gil wrote:Saludos Jefe...
Es algo muy simple...
Recopilando un poco lo aqui expuesto
Code: Select all
@ 20,20 say oSay prompt "Test" of oWnd pixel COLOR CLR_BLACK
oSay:bLClicked := {| nRow, nCol, nFlags, oSay | ;
if ( oSay:nClrText == CLR_BLACK, oSay:nClrText := CLR_YELLOW, oSay:nClrText := CLR_BLACK ), oSay:Refresh() }
oSay:lWantClick := .t.
muchas gracias si funciona, pero ahora me tengo que empapar esto, ya que tendre que crear un array ya que en cada calle puede haber hasta 1000 portales.
de verdad muchas gracias, esque soy muy torpe y estoy aprendiendo sobre la marchas
Re: quien me da una idea de como hacer esto?
Posted: Mon Apr 20, 2009 8:57 pm
by jrestojeda
jefe wrote:
Me podeis decir con que manuales habeis empezado, porque yo los que tengo dan por sentado muchas cosas y no me entero de nada.
Podrías empezar mirando los samples de FWH y la ayuda proporcionada con el paquete.
Hay muchos ejemplos muy interesantes para ver...