Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Eleкtro

#9511
Cita de: $Edu$ en 26 Enero 2013, 19:33 PM
Estoy casi seguro que lo que quieres es mas simple de lo que crees, es exactamente lo que te dije yo seguramente. No necesitas hacer nada de Settings y no se que mas, es mas simple.

Pienso lo mismo, unos comentarios atrás en este post puedes ver como le modifiqué el form con los cambios que le has comentado tú $Edu$, pero ni así...
si sé le da mal las variables creo que mejor con settings xD...

Cita de: Seazoux en 26 Enero 2013, 19:09 PM
no me sale nada de nada y eso que le tengo un value puesto.  >:D

A mi me funciona bien, me sale un msgbox con el valor de la setting: "Aquí debería salir el Folder"

reinicia el VS a ver a veces hace cosas raras xD
#9512
Cita de: Seazoux en 26 Enero 2013, 19:09 PM
Código (vbnet) [Seleccionar]
MsgBox("La ruta del Folder deberia salir aquí: " & My.Settings.Folder)

no me sale nada de nada y eso que le tengo un value puesto. >:D

Si la propiedad tiene un valor de tipo string, entonces ese msgbox debería funcionar,
a menos que hayas eliminado el valor de la propiedad en alguna parte dle código . . . y si no muestra nada, entonces es que la propiedad no tiene ningún valor, está vacía.

Sincéramente no se te puede ayudar si no aportas datos, ¿como esperas que te digamos cual es el problema en esa línea de código si no muestras más información?

1. la excepción que te marca la IDE, eso haznos el favor a todos de ponerlo siempre cuando postees un problema, xq yo por ejemplo me canso de postear para pedirte más información siempre...
2. Una imagen de tus "settings"
3. el código del sub donde intentas usar la variable

eso estaría bien...

Saludos
#9513
Como se podría optimizar el código para crear una función de esto?

Por ejemplo:

Código (vbnet) [Seleccionar]
   Private Sub Form1_Load()
       Dim File_Extensions() As String = {"*.txt", "*.ini", "*.exe", "*.pdf"}
       Dim Files() = Get_Files_By_FileExtensions("C:\", File_Extensions)
   End Sub


Y entonces aquí se debería agregar automáticamente un "orelse s.EndsWith(siguiente extensión)" por cada extensión de la colección:
Código (vbnet) [Seleccionar]
   Public Function Get_Files_By_FileExtensions(ByVal Directory As String, ByVal Extensions() As String) As System.IO.FileInfo()
       Return IO.Directory.GetFiles(Directory, "*").Where(Function(s) s.EndsWith(Extensions(0)) _
       OrElse s.EndsWith(Extensions(1)) _
       OrElse s.EndsWith(Extensions(2)) _
       OrElse s.EndsWith(Extensions(3)))
   End Function


¿Es posible hacerlo?


EDITO: Yo ya tengo funciones para listar archivos, pero preciso hacerlo con ese código que menciono (me resulta más limpio porque sólo hace una búsqueda)
#9514
No todo es necesario codearlo, dispones de un menú en la IDE para crear las APP/USER settings:

Project > windowsapplication properties > settings

o dale doble click en "my project" en el "solution explorer"

Nombre: Folder Type: String Scope: User Value: (nada de nada)
Y listo, ya habrás creado tu setting/propiedad

saludos
#9515
En serio, no sé como se te puede dar tán dificil una variable.

Te vuelvo a repetir lo de antes:

1. Estás declarando la variable en el form, fuera de los subs.
2. No le das ningun valor a la variable.
3. En el form load intentas usar la variable, que no contiene ningún valor, y eso son dos errores, porque no sé que pinta ahí lo que haces en el form load, cuando debería estar todo en el sub del botón.

Repito las cosas y no haces caso.

Código (vbnet) [Seleccionar]
Public Class Form2

   Dim Listita As New ListBox

   Private Sub Form2_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
       Listita.BackColor = Color.White
       Listita.ForeColor = Color.Black
       Listita.Size = New Point(340, 251)
       Listita.Location = New Point(12, 25)
       AddHandler Listita.SelectedIndexChanged, AddressOf Listita_SelectedIndexChanged
       Me.Controls.Add(Listita)
   End Sub

   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       Me.Close()
   End Sub

   Private Sub Listita_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
       Dim Item As String = Listita.SelectedItem
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim FBD As New FolderBrowserDialog
       FBD.Description = " Seleccionar una carpeta "
       FBD.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
       FBD.ShowNewFolderButton = True
       Dim Resultado As DialogResult = FBD.ShowDialog
       If Resultado = Windows.Forms.DialogResult.OK Then
        Try
               Dim Folder As String = FBD.SelectedPath
               Dim Files As Array = IO.Directory.GetFiles(Folder, "*", IO.SearchOption.TopDirectoryOnly)
               Dim TotalRoms As Int32 = Files.Length
                Listita.Items.Clear()
               For Each File In Files
                   Dim File_Info As New IO.FileInfo(File)
                   Listita.Items.Add(File_Info.Name)
               Next
               Label1.Text = "Roms encontrados (" & TotalRoms & ")"
           Catch ex As Exception
               MsgBox(ex.Message)
           End Try
       End If
       FBD.Dispose()
   End Sub

End Class


Saludos
#9516
CitarPues si pongo:
Código (vbnet) [Seleccionar]
My.Settings.Folder = FBD.SelectedPath

Me dice:
Error   1   'Folder' is not a member of 'WindowsApplication1.My.MySettings'.   C:\Users\Alvaro\Documents\VisualBasic NET\Projectos\WebKitEmulator\WindowsApplication1\WindowsApplication1\Form2.vb   46   13   WindowsApplication1

Es que no has creado ninguna setting.

Google + vbnet how create my.settings

saludos.
#9517
my.settings.myvariable = fbd.selectedpath
#9518
No entiendo tu problema Seazoux, y no creo que séa tán dificil declarar una variable en el form principal y usarla en las otras classes, pues te he dado mil ejemplos ya.

De todas formas, si te es tán complicado entonces deberías olvidarte de variables y crear una setting por ejemplo:
My.Settings.Folder

Ahí guardas el valor de la ruta y eso te sirve para cualquier form, y sin movidas.

Saludos
#9519
pues dále otro nombre a la segunda variable...

esto ya te lo puse antes:

form1
public folder as string = "C:\"


form2
public folder2 as string = form1.folder



No uses el mismo nombre de variable para todo...
#9520
Cláramente se vé que declaras dos "Folder" privadas en el form que has posteado.

Cita de: Seazoux en 25 Enero 2013, 21:57 PMhay conflicto porque hay ya un Folder definido

Tú mismo te respondes... usa el buscador de la IDE, Ctrl + F, y buscas "Folder" en la solución entera.




Citar
Código (vbnet) [Seleccionar]
Dim Files1 As Array = IO.Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.System), "*", IO.SearchOption.TopDirectoryOnly)
      Dim TotalRoms As Int32 = Files1.Length
      Label1.Text = "Roms encontrados (" & TotalRoms & ")"

Una pregunta: ¿ese código que te puse lo sigues teniendo de decoración?, ¿entiendes el code?.

Y otra pregunta, ¿Porque tienes dos forms?,
cada uno es libre de crear los forms que quiera en su aplicación... pero digo yo que en una app tán pequeña no es necesario más de un form porque no necesita más de 200 líneas de código xD...

saludos