Marcelo:
Lo que te comentaba tu tocayo Cortez es correcto pero aplica a Dolphin
Smalltalk el cual trae una mejora en la implementación de #printString.
En todo caso el efecto es el mismo, tenes que redefinir en tu clase
Usuario el método #printOn: . Eso se debe a que #printString, que es el
que va a enviar internamente el ListBox para mostrar un objeto, esta
implementado en terminos de #printOn: . Con esto quiero decir que como
regla tomá que *siempre* se redefine #printOn: y *nunca* #printString.
Ahora, printOn: lleva como argumento aStream, es decir, si te fijas en
la implementacion de Object de printString se crea un Stream y se pasa
como argumento del printOn: .
El stream argumento tenes que "escribirlo o usarlo" usando #nextPut: y/o
#nextPutAll: . Fijate en la clase Stream y sus subclases todo el
protocolo disponible. Ademas tenes como ejemplos todos lo implementors
de #printOn: dentro del propio Visual Smalltalk.
En tu caso
Usuario>>#printOn:
printOn: aStream
"Agrega a aStream la descripción textual del receptor."
aStream nextPutAll: self nombre
Si no entendes algo de lo que te explicamos sobre como buscar
Implementors y Senders pregunta. Tambien si queres saber como usar el
Debugger.
Algo para tener en cuenta es que PARTS es un poco especial, tiene cosas
muy buenas y cosas no tan buenas asi que podes preguntar y por ahi no
tenemos muchas respuestas. Ni siquiera tengo un image con PARTS a mano,
debería armarlo. Ademas poca gente lo ha usado... creo que en la
Universidad de Morón nomas. Deberiamos tener alguien que haga algo en
Moron y ayude a que se use Dolphin en vez de Visual Smalltalk (y esto no
significa que VS sea malo).
Saludos
GallegO
entrada escribió:
> Hola Gente,
>
> Estoy haciendo una pantalla principal en Visual Smalltalk y tengo un
> listBox de usuarios llamado ListaUsuarios.
> Esta lista de usuarios esta asociada a un objeto pListaUsuarios de la
> siguiente forma:
>
> pListaUsuarios:= self partNamed: 'ListaUsuarios'.
>
> En el initializeParts de la clase administradora llamo a un metodo
> actualizarListaUsuarios que contiene la siguiente linea:
>
> pListaUsuarios setList: sistema usuarios.
> donde el metodo usuarios devuelve una OrderedCollection.
>
> Ahora lo que me muestra el listBox ListaUsuarios es:
> aUsuario
> aUsuario
> aUsuario
>
> lo que yo quisiera mostrar es el nombre de usuarios de la siguiente
> forma:
> perezj
> rodriguezl
> pereyram
>
> pero al hacer doble click sobre el nombre ejecutar un metodo sobre el
> objeto usuario.
>
> Cual es la mejor forma de hacer esto?
> yo lo que habia pensado es cargar los nombres de usuarios en la lista
> y al hacer doble click llamar a un metodo traerUsuario:nombre que me
> devuelva el objeto usuario.
>
> Espero que se entienda.
>
> Desde ya, muchas gracias por cualquier ayuda.
> Saludos,
> Marcelo
>
>
> >
>
>
--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "clubSmalltalk" de
Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a [email protected]
Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/clubSmalltalk?hl=es.
-~----------~----~----~----~------~----~------~--~---