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 - Keyen Night

#81
Un error es señal de que algo anda mal, lo correcto es corregirlo no ignorarlo. No puedes caer ante un error, porque en todos los proyectos hasta en los mejores y más grandes incluso con los mejores programadores, los errores existen y la lógica es combatirlos. Aunque si en verdad deseas ignorarlo.....

En Configuraciones del Proyecto, puedes Activar el Handler de excepciones no controladas, y filtrar esta excepción para así ignorarla.

Proyecto > Aplicación (Es una pestaña) > Ver eventos de aplicaciones (Es un botón esta abajo al final) > Se abre una nueva ventana de código busca y agrega el evento UnhandledException > Y agregas esto:

Código (vb.net) [Seleccionar]
           If TypeOf e.Exception Is IndexOutOfRangeException Then
               e.ExitApplication = False
           End If


Tienes que tener en cuenta que cuando se da un error en un método todo el código que prosigue al lugar donde se dio el error no se ejecuta y el método se corta violentamente.

Código (vb.net) [Seleccionar]


Dim A As Integer = 5
Dim B As Integer = 1

B -= 1

Dim C As Integer = A / B 'Error'

'Desde aquí se corta el método'

MessageBox.Show(C)



Este código tiene un error común, una variable se vuelve cero en tiempo de ejecución luego se hace una division que resulta en error, si configuramos nuestra aplicación para ignorar el error, entonces el valor de C nunca sería calculado y el mensaje tampoco seria mostrado
#82
Esa ventana es aviso de una excepción no controlada, si lees da mucha información acerca de donde y como se dio el error, tienes que revisar el código en el lugar donde te dice que lo hubo, buscando valores inválidos, variables no inicializadas, divisiones por 0, desbordamientos y ese tipo de cosas.

Al menos allí se logra ver IndexOutOfRangeException, que es un tipo de excepción que resulta de excederse del Index en un arreglo, Por ejemplo una lista contiene 5 elementos, eso quiere decir que contiene los Index del 0 al 4, intentar llamar al 5 acabaría en esta excepción. Se puede ver que el error da en CargarPropiedades y que a su vez este método se llama desde el evento Form.Load.
#83
Debes crear el objeto FileInfo

Código (vb.net) [Seleccionar]
Dim I As New FileInfo(Objetos(0))

Y de esa variable es que sacas el valor de Attributes.

Cita de: EleKtro H@cker en 21 Noviembre 2012, 16:14 PM
No he podido hacer la comparación entre directorio y archivo, ¿Que estoy haciendo mal?


Código (vbnet) [Seleccionar]
   Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles foldertextbox.DragDrop
       If e.Data.GetDataPresent(DataFormats.FileDrop) Then
           Dim Objetos As String() = e.Data.GetData(DataFormats.FileDrop)

           Dim attributes = Objetos(0)
           If ((attributes And FileAttributes.Directory) = FileAttributes.Directory) Then
               MsgBox("es un dir")
           Else
               MsgBox("no es un dir")
           End If


#84
Debes filtrar entre que es un archivo y una carpeta porque así recibirás cualquiera de los dos por igual, una de las formas de hacerlo es en el Evento DragEnter, crear un objeto FileInfo, con la ruta del archivo/carpeta recibido y verificar si el archivo posee el Attributes IO.FileAttributes.Directory. Recordando que Attributes es Flags, y se comprueba:

Código (vb.net) [Seleccionar]
(Info.Attributes And IO.FileAttributes.Directory) = IO.FileAttributes.Directory

Código (vb.net) [Seleccionar]
   Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop

       If e.Data.GetDataPresent(DataFormats.FileDrop) Then

           Dim Objetos As String() = e.Data.GetData(DataFormats.FileDrop)

           TextBox1.Text = Objetos(0)

       End If

   End Sub

   Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter

       If e.Data.GetDataPresent(DataFormats.FileDrop) Then
           e.Effect = DragDropEffects.All
       End If

   End Sub
#85
Código (vb.net) [Seleccionar]
PADRE.Controls.Find("Ejemplo", True)

Devuelve un Array de Controls en el PADRE, que coincidieron con "Ejemplo".

Ya Novlucker había dado el nombre de la función ;).
#86
Cita de: Novlucker en 20 Noviembre 2012, 14:12 PM
Necesito un resumen :xD

En tu app;
  • Seleccionas un directorio
  • Listas todos los subdirectorios
  • Creas un checkbox por cada subdirectorio
  • ¿Para que son las settings?

Saludos

x2 Yo también iba a publicar lo mismo :-X :xD El problema se ha desbordado un poco no?
#87
que buscarias capturar con la expresion regular?
#88
Cita de: Novlucker en 18 Noviembre 2012, 19:06 PM

http://msdn.microsoft.com/es-es/library/bb972208.aspx

Básicamente C# es un poco más rígido en cuanto a sintáxis, pero no hay muchas diferencias más.

Saludos



Creo que vale la pena recalcar el link que compartió Novlucker, creo que queda todo sobreentendido, sobretodo en las citas directas que hacen de Microsoft.

La siguiente parte que colocan negrita es muy importante, cito:

Cita de: Microsoft"Debido a las diferencias del pasado entre Microsoft Visual Basic , Microsoft Visual C , y Microsoft Visual C++ , muchos desarrolladores tienen la impresión de que Microsoft Visual C# .NET es un lenguaje mucho más poderoso que Microsoft Visual Basic .NET. Algunos desarrolladores asumen que muchas cosas que son posibles en Visual C# .NET son imposibles en Visual Basic .NET; de igual forma en que muchas cosas que son posibles en Microsoft Visual C 6.0 ó Microsoft Visual C++ 6.0 son imposibles en Microsoft Visual Basic 6.0. Asumir esto es incorrecto. Si bien existen diferencias entre Visual Basic .NET y Visual C# .NET , ambos son lenguajes de programación de primera clase basados en el Microsoft .NET Framework , y ambos son igual de poderosos."
#89
Hazlo en el lenguaje que te sientas más cómodo, C++, C# y .Net de Visual Studio terminan en IL todos.
#90
Todo lo imaginable es posible con el GDI de .Net ;), mira este ejemplo:

Un proyecto Windows Forms vació, carga una imagen, crea un objeto GraphicPath y agrega los puntos que conforman el Polígono, obtiene la región que ocupa dicho Polígono, luego recorre cada Rectángulo que conforma la región pintando cada parte de la Imagen con ayuda de la función Offset que mueve los ejes hacia el Origen deseado (El punto desde donde se comenzara a Dibujar la Imagen) y el Destino (El punto desde donde se cortara el polígono en la imagen).

Código (vb.net) [Seleccionar]
Imports System.Drawing.Drawing2D

Public Class Form1

    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

        Dim Imagen As Image = Image.FromFile("C:\Ejemplo.JPG")

        Dim Forma As New GraphicsPath

        Forma.AddPolygon(New PointF() {New PointF(10, 20), New PointF(250, 35), New PointF(150, 200)})

        Dim Poligono As New Region(Forma)

        Dim Origen As New Point(10, 10), Destino As New Point(20, 20)
        Dim RectanguloOrigen As RectangleF, RectanguloDestino As RectangleF

        For Each Rectangulo As RectangleF In Poligono.GetRegionScans(New Matrix)
            RectanguloOrigen = Rectangulo : RectanguloOrigen.Offset(Origen)
            RectanguloDestino = Rectangulo : RectanguloDestino.Offset(Destino)
            e.Graphics.DrawImage(Imagen, RectanguloOrigen, RectanguloDestino, GraphicsUnit.Pixel)
        Next

    End Sub

End Class