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 - javier234-

#131
El codigo es lo de menos, ya que ademas tiene algo de extension y creeme, ya lo he revisado yo un monton de veces por si habia algo extraño, y no lo hay.
La pregunta es, como puede tener distinto comportamiento en el entorno VS 2008 que en Windows XP, y eb anbos no da error alguno, solo que en XP el programa se cierra solo.
Gracias y saludos
#132
Hola a todos,

Igual hay razones para que sea asi, pero no entiendo por que pasa.
Tengo un Form1 y dentro de él un ListView en el que escribo datos, datos que puedo modificar haciendo doble click.Una vez modificado el dato vuelve al ListView y queda en pantalla por si se quiere modificar otro dato.Para cerrar el ListView y el Form1 que lo contiene, hago click en el aspa superior derecha del Form1, y capto que lo quiero cerrar mediante el evento FormClosing y antes de cerrarlo pongo un MessageBox advirtiendome que se va a cerra el formulario.
Asi funciona correctamente en el entorno de Visual Studio 2008.
Lo sorprendente es que si corro el ejecutable fuera del Visual Studio 2008, una vez que modifico un dato, en vez de volver al ListView, se cierra el programa sin ni siquiera salir el MessageBox de que se va a cerrar el formulario.

Alguien tiene alguna idea de como puede ser esto?
Gracias anticipadas y saludos
#133
Hola raul338, gracias por responder,

La verdad es que me esta dando bastantes problemas el tema, pero necesito operar con archivos de acceso directo y los unicos ejemplos que he encontrado en la red, unos no funcionan (debian ser para VB6) y otros como el que pongo da errores extraños,una vez si y otra no.No he encontrado ni se donde encontrar ejemplos o documentos para este tipo de archivos en .NET, ya que el MSDN es un poco infumable y no facil de entender.
Si sabes de algun sitio donde poder mirar te lo agradeceria.
Saludos
#134
Hola a todos,

Pues esa es la pregunta.Primero si se puede y segundo como habria que hacerlo.
Gracias anticipadas y saludos
#135
Gracias agus0  por responder,

No  sabia que este post era solo para Visual Basic 6.0 o menor.Por eso lo puse aqui..
Como se mueve al .NET ?
De cualquier manera te digo que lo curioso es que el error lo da no en una linea nueva, sino en una linea que estaba exactamente igual puesta en el proyecto con TextBox y alli no daba error.Realmente es incomprensible.
Si sabes como mover el post a .NET dimelo por favor.
Saludos
#136
Gracias Shell Root  por responder,

Pero el error no lo da en la linea de ListBox1.Items.Add(....) sino en la linea anterior al leer el archivo (FileGet(........)), cosa que no entiendo por que no da el mismo error en el otro proyecto en el que utilizo un TextBox en vez de un ListBox.
Es mas, te diré que si quito completamente la linea ListBox1.Items.Add (....), me sigue dando el mismo error.Increible pero cierto.
Tanto en uno como en otro proyecto la opcion OptionStrict esta en On.
Al margen de que en los ListBox se genere automaticamente el salto de linea.

Gracias
Saludos
#137
Hola a todos,

He creado dos proyectos exactamente iguales en Visual Basic 2008, uno que utiliza un TextBox para esvribir lo leido de un archivo y otro que utiliza un ListBox en vez del TextBox.
El codigo fuente es exactamente el mismo tanto en uno como en otro.Lo unico que cambia es la linea donde escribo al TextBox o al ListBox, y sin embargo en el proyecto del ListBox, me da el famoso error
----------------------------------------------------
Error   1   Option Strict On no permite restricciones del tipo 'System.ValueType' al tipo 'WriteListBoxDatosArchivoRandom.Form1.RegistroParametros' al copiar de nuevo el valor del parámetro 'ByRef' 'Value' en el argumento correspondiente.   T:\Documents and Settings\xxxxxx\Mis documentos\Visual Studio 2008\Projects\WriteListBoxDatosArchivoRandom\Form1.vb   40   24   WriteListBoxDatosArchivoRandom
-----------------------------------------------------
cosa que en el de TextBox no da ningun error ni antes de la compilacion ni despues de ella.
Este es el codigo que da error antes de compilar en lo que esta en negrita
_______________________________________________________
Public Class Form1

    Public Structure RegistroParametros
        <VBFixedString(16)> Public Nombre_Parametro As String
        Public Valor_Parametro As Single
    End Structure

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim ContenidoRegistroParametros As RegistroParametros
        ContenidoRegistroParametros.Nombre_Parametro = "                "
        ContenidoRegistroParametros.Valor_Parametro = 0

        FileOpen(1, "T:\Parametros.dat", OpenMode.Random, OpenAccess.ReadWrite, OpenShare.Shared, Len(ContenidoRegistroParametros))
        Dim i As Integer
        Dim c As Char
        For i = 1 To 64
            c = CType(ChrW(i + 48), Char)
            ContenidoRegistroParametros.Nombre_Parametro = c + c + c + c + c + c + c + c + c + c + c + c + c + c + c + c
            ContenidoRegistroParametros.Valor_Parametro = CType(i, Single)
            FilePut(1, ContenidoRegistroParametros, i)
        Next
        MessageBox.Show("Se creo el archivo")

        For i = 1 To 16
            FileGet(1, ContenidoRegistroParametros, i)
            ListBox1.Items.Add(ContenidoRegistroParametros.Nombre_Parametro & "-" & ContenidoRegistroParametros.Valor_Parametro.ToString & ControlChars.CrLf)
        Next

        FileClose(1)

    End Sub
End Class
-------------------------------------------------------------------------------
La linea que cambia en el proyecto del TextBox es la de ListBox.Items.Add(...) por esta otra
TextBox1.AppendText(ContenidoRegistroParametros.Nombre_Parametro & "-" & ContenidoRegistroParametros.Valor_Parametro.ToString & ControlChars.CrLf)

Alguien entiende que en el proyecto TextBox no de error alguno y si lo de en el proyecto de ListBox y ENCIMA en la linea de lectura del archivo ???

Cualquier ayuda sera bienvenida
Gracias anticipadas y saludos

#138
Bien, lo que me dices ya es algo, pq no sabia como acceder al MSDN de Microsoft para ver directamente explicacion de errores.
Por lo que se ve no puede ponerse ahi una estructura y si los tipos que indica, como String.Por eso si pongo ContenidoRegistroParametros.Valor_parametro, no da error de codigo fuente,pero si al compilar, y el error que da es:
Longitud de registro incorrecta.
Si pongo despues del i ,20 que es lla longitud del registro, el error que me da en codigo fuente es:

Error   1   Error de resolución de sobrecarga porque ninguna de las funciones 'FileGet' a las que se tiene acceso se puede llamar con estos argumentos:
    'Public Sub FileGet(FileNumber As Integer, ByRef Value As String, [RecordNumber As Long = -1], [StringIsFixedLength As Boolean = False])': Option Strict On no permite la conversión implícita de 'Integer' en 'Boolean'.
    'Public Sub FileGet(FileNumber As Integer, ByRef Value As System.Array, [RecordNumber As Long = -1], [ArrayIsDynamic As Boolean = False], [StringIsFixedLength As Boolean = False])': Un valor de tipo 'String' no se puede convertir en 'System.Array'.
    'Public Sub FileGet(FileNumber As Integer, ByRef Value As System.Array, [RecordNumber As Long = -1], [ArrayIsDynamic As Boolean = False], [StringIsFixedLength As Boolean = False])': Option Strict On no permite la conversión implícita de 'Integer' en 'Boolean'.

Cada vez veo mas dificil el .NET.
Saludos
#139
Gracias kingdarnakes por responder,

El error que puse me lo da si en la linea de lectura del archivo FileGet(1,ContenidoRegistroParametros,i)
Ahi aparece el error de Opcion Strict On no permite....
en cambio si en esa line pongo FileGet(1,ContenidoRegistroParametros.Valor_parametro,i) no da error ninguno de codigo fuente.En cambio, si lo compilo, en la compilacion da error y se cuelga.
Saludos
#140
Si, que VB 2008 forma parte de .NET, lo se.Lo que queria decir es que no soy un programador experto ni de Visual Basic ni de ningun otro lenguaje de .NET.
Saludos