|
Página 1 de 1
|
Modificando El Código De DirView
Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Modificando El Código De DirView
He tenido, ya sabéis, problemas con DirView: Cuando pretendes crear una carpeta y la línea donde se debe insertar -es decir la línea donde debería ir la cadena "Nueva Carpeta"- no es visible, la carpeta no se crea.
Al final descargué el fuente de DirView (qué maravilla eso de que la mayor parte de gambas esté escrito en gambas), lo incorporé a mi aplicación y modifiqué el código original como sigue:
Con eso funciona tal como yo esperaba. Lo malo es que no sé si es un bug, o es que yo utilizo mal el control y que no me parece "elegante" eso de duplicar la clase entera por dos líneas de diferencia.
He enviado el tema a la lista de correos a ver si alguien dice algo esta vez.
Saludos.
|
#1 Martes, 01 Abril 2014, 08:52 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Modificando El Código De DirView
Shordi:
Para "forzar" el desplazamiento al último elemento, en los gridviews, yo usaba la propiedad ScrollY.
Dándole un valor alto (igual que el ScrollH), para que se desplazará al final y se viera el último elemento introducido.
A ver si te sirve.
Saludos
|
#2 Martes, 01 Abril 2014, 16:01 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Modificando El Código De DirView
DirView primero crea la carpeta Nueva Carpeta (o con un número añadido si ya existe), luego inserta el item "Nueva Carpeta" en el arbol y lo pone en modo edición. Si se cancela el evento de renombrar, se deshace el proceso cancelando la adición al arbol y eliminando la carpeta creada.
Lo único que le faltaba era una llamada al método .ensureVisible después de insertar en el arbol y antes de ponerlo en modo de edición.
En la lista de correos no me responde nadie, por lo que supongo que me veré obligado a mantener la clase DirView duplicada...
... por cierto, leí en algún lado que si creas una clase que se llama DirView (es decir igual que una clase de gambas) había alguna manera de sólo reescribir una función y todo lo demás se mantenía heredando de la clase padre. Lo he intentado hacer así, pero DirView en concreto tiene una serie de llamadas a procedimientos y variables declarados private, y de momento no he sido capaz.
Espero que Benoit o quien quiera que mire eso, me responda en la lista y corrijan este bug (si es que lo es) cuanto antes.
|
#3 Miercoles, 02 Abril 2014, 08:34 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Modificando El Código De DirView
Además la clase DirView hereda de UserControl y desconozco si con la limitación que tiene gambas con la herencia multiple, sería posible heredar la clase y sobrecargar (reimplementar) el método necesario.
Por cierto, anoche lo estuve probando y al pulsar el botón de añadir carpeta, lo que me hace es editar el current item, si es una carpeta como para renombrarla, pero no me está creando una carpeta nueva. No sé si es un bug o es el comportamiento esperado...
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#4 Miercoles, 02 Abril 2014, 09:45 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Modificando El Código De DirView
Además la clase DirView hereda de UserControl y desconozco si con la limitación que tiene gambas con la herencia multiple, sería posible heredar la clase y sobrecargar (reimplementar) el método necesario.
No, no se puede. Directamente hay que comentar la linea de "Inherits UserControl"...
Lo del añadir, esta tarde lo pruebo, pero a mí me iba bien ayer...
|
#5 Miercoles, 02 Abril 2014, 11:19 |
|
|
jsbsan
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4175
Edad: 51 Ubicación: dos hermanas, sevilla
|
Re: Modificando El Código De DirView
Citar: Además la clase DirView hereda de UserControl y desconozco si con la limitación que tiene gambas con la herencia multiple, sería posible heredar la clase y sobrecargar (reimplementar) el método necesario.
No, no se puede. Directamente hay que comentar la linea de "Inherits UserControl"...
Existe un patrón de diseño (el delegate ( Enlace)) que sirve para simular la herencia múltiple en lenguajes que no lo tienen...
Tendría que ver con más detalles el código del que estais hablando, para intenetarlo implementar.
última edición por jsbsan el Miercoles, 02 Abril 2014, 16:42; editado 1 vez
|
#6 Miercoles, 02 Abril 2014, 16:40 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Modificando El Código De DirView
Citar: ...al pulsar el botón de añadir carpeta, lo que me hace es editar el current item, si es una carpeta como para renombrarla,...
Funciona perfectamente si pulsas nueva carpeta en el arbol de directorios de la máquina local, que es quien usa el DirView. El comportamiento que mencionas lo hace en el arbol remoto, que no es un DirView. Es un treeView que maneja "a pelo" el resultado del ftp.get sobre una carpeta remota.
Precisamente es el código que maneja el treeview el que he comprobado que es un poco bastante, bueno, vale , MUY, chapucero. Tengo que reescribirlo a raíz de lo que he aprendido explorando el código del DirView. Lo ideal sería hacer un control llamado FTPView, o algo así, que fuese un clon del DirView, pero manejando comandos FTP.
Lo miraré despacito... cuanto tenga tiempo, que es lo más escaso del mundo...
Saludos.
|
#7 Miercoles, 02 Abril 2014, 16:46 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Modificando El Código De DirView
Ya que estábamos hablando de parches en otro hilo, lo mejor sería enviar un parche con las correcciones a Benoit para que lo aplique. Para eso hay que descargar el código fuente de gambas y abrir el proyecto en gambas y crear el parche. Sencillo.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#8 Miercoles, 02 Abril 2014, 16:48 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Modificando El Código De DirView
Bueno... antes quisiera que alguien me confirmara que la modificación es correcta. Hasta donde yo he visto lo es, pero creo que no "oso" hacer eso que dices así sin más.
|
#9 Miercoles, 02 Abril 2014, 17:29 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|