Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Modificando El Código De DirView
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje 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:

Public Sub NewFolder()
  
  Dim sDir As String
  Dim sPath As String
  Dim iInd As Integer
  Dim clave As String
  
  sDir = ("Nueva Carpeta")
  clave = $hTreeView.Current.Key
  iInd = 1
  
  Do
    If Not Exist(clave &/ sDir) Then Break
    Inc iInd
    sDir = ("Nueva Carpeta") & " (" & CStr(iInd) & ")"
  Loop  
  
  sPath = clave &/ sDir
  Mkdir sPath
  AddDir(clave, sDir)
  $bDeleteOnCancel = True
  $bInRename = True

       'Las siguientes dos líneas son mías
  $hTreeView[sPath].EnsureVisible
  Wait 0.01

  $hTreeView[sPath].Rename
  
Catch
 
  Message.Error(("Cannot create directory.") & "\n\n" & Error.Text)
  
End
 


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.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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...
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
última edición por jsbsan el Miercoles, 02 Abril 2014, 16:42; editado 1 vez 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje 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.
   
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes DirView Y FileView pittusa Controles/Librerías/Componentes 2 Lunes, 20 Septiembre 2010, 19:22 Ver último mensaje
pittusa
No hay nuevos mensajes Manteniendo El Código Programas Relacione... portaro General 2 Jueves, 23 Abril 2015, 21:32 Ver último mensaje
portaro
No hay nuevos mensajes Alterar Una Propiedad O Un Método De Un O... vuott General 10 Martes, 25 Octobre 2016, 22:56 Ver último mensaje
vuott
No hay nuevos mensajes Scratch To Gambas Algun Amigo Podria Hacer... portaro General 6 Jueves, 26 Julio 2018, 07:43 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron