Shell   29-03-2024, 22:33
#1
Buenas!.

Para el manipulador de eventos del fileview interno se debe declarar un observador, ¿ no ?.
Por ejemplo, me gustaría abrir uno de los archivos que muestra su fileview.

Lo hice de esta forma:

Código:
Private vigilante As Observer

Public Sub Form_Open()

  vigilante = New Observer(DirChooser1.FileView) As "VigiloFileview"

  DirChooser1.ShowFile = True
  DirChooser1.FileView.View = FileView.Detailed

End

Public Sub VigiloFileview_Click()

  Desktop.Open(DirChooser1.SelectedPath &/ DirChooser1.FileView.Current)

End

Lo pregunto por si existe otra forma directamente con el DirChooser.

Saludos
Última modificación: 29-03-2024, 22:34 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   30-03-2024, 21:43
#2
La única es crear una variable tipo fileview e igualarla.

Código:
private fviu as fileview as "miFileview"

fviu = Dirchooser1.fileview
A partir de ahí tienes tu fileview al alcance con la posibilidad de manipular sus variables y eventos.

Es una mejora sobre todo estética y de claridad ahorrando esa ristra de la jerarquía separada por puntos.

Saludos

No podemos regresar
Shell   31-03-2024, 14:18
#3
(30-03-2024, 21:43)Shordi escribió: private fviu as fileview as "miFileview"

Eso parece que no va a funcionar. Sad
Gambas no te admite dos "as" seguidas. 

Tu puede declarar el tipo. Pero para crear el control hay que decirle su
contenedor y ¿ cuál es el contenedor de fviu ?. 

Cuando creas el manipulador de sus eventos, necesita tener
un contenedor.

Ahora bien "Si" puedes hacer esto:

Código:
Private vigilante As Observer
Private fviu As FileView

Public Sub Form_Open()

  vigilante = New Observer(DirChooser1.FileView) As "VigiloFileview"

  fviu = DirChooser1.FileView

  DirChooser1.ShowFile = True
  fviu.View = FileView.Detailed

End

Public Sub VigiloFileview_Click()

  Desktop.Open(DirChooser1.SelectedPath &/ fviu.Current)

End

Lo que se ha ganado es reducir la ristras de puntos.

¿ No estuviste una vez comentando que por medio del contenedor padre lo que se haga, su manipulador de eventos, podía afectar a sus
hijos ?. Algo parecido comentaste.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   31-03-2024, 18:02
#4
Cita:Eso parece que no va a funcionar. Sad
Gambas no te admite dos "as" seguidas. 
 Tienes razón. (Nota Mental: No teclear código con los pulgares y sin las gafas cuando estés cagando.)

Prueba así:
Código:
Private fviu As FileView
Private vigilante As Observer

Public Sub Form_Open()

    fviu = DirChooser1.FileView
    vigilante = New Observer(fviu) As "FViu"
    DirChooser1.ShowFile = True
    fviu.View = FileView.Detailed

End

Public Sub Fviu_Click()

    Desktop.Open(fviu.Path)

End

Ya me cuentas

Cita:¿ No estuviste una vez comentando que por medio del contenedor padre lo que se haga, su manipulador de eventos, podía afectar a sus
hijos ?. Algo parecido comentaste.

Creo que te refieres a la propiedad Proxy que tienen los controles.
Cuando un contenedor, como DirChooser, contiene otros controles, como FileView, se puede establecer, por ejemplo en el evento _new(), que

[code]

Siendo Me el Dirchooser

Con eso el control padre responde a los eventos de teclado y ratón del control hijo.

Pero nunca lo he probado con controles ya creados, sólo en los propios.

Saludos
Última modificación: 31-03-2024, 18:09 por Shordi.

No podemos regresar
Shell   31-03-2024, 20:56
#5
(31-03-2024, 18:02)Shordi escribió: Tienes razón. (Nota Mental: No teclear código con los pulgares y sin las gafas cuando estés cagando.)

Big Grin Big Grin

El código funciona perfectamente. Se parecen, pero es más breve.
Lo que no sea la experiencia con los controles.

Veré lo de la propiedad proxy para ver como va.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.