none
Usar codigo de Modulo en todos mis formularios RRS feed

  • Pregunta

  • Hola a todos:

     Alguno de ustedes que sepa como puedo usar el siguiente código en todos mis formularios:

        Private Const SC_MOVE As Int32 = &HF012&
        Private Const WM_SYSCOMMAND As Int32 = &H112
        Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _
                ByVal hwnd As Int32, _
                ByVal wMsg As Int32, _
                ByVal wParam As Int32, _
                ByVal lParam As Int32) As Int32
        Private Declare Function ReleaseCapture Lib "user32" () As Int32
    
        Private Sub mover()
            Try
                ReleaseCapture()
                Dim res As Int32 = _
                    SendMessage(CInt(Me.Handle), _
                        WM_SYSCOMMAND, SC_MOVE, 0)
            Catch ex As Exception
            End Try
        End Sub

    Estoy tratando de ponerlo en un modulo pero esta parte me genera un error:

    SendMessage(CInt(Me.Handle), _

    El error es: 'Me' no es valido dentro de un Modulo.

    La idea es crear un metodo o una funcion dentro del modulo la cual pueda mandar a llamar en cualquier formulario.

    Gracias de antemano.


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 10 de enero de 2013 4:31

Respuestas

  • uan recomendacion, nunca hagas esto

        Catch ex As Exception
        End Try

    definir un error que no haces anda esta muy mal, de ultima lo logueas a un archivo, o haces algo

    despues la conversion podria ser

    Public Sub mover(Handle As Integer)
    
    	ReleaseCapture()
    	Dim res As Int32 = SendMessage(Handle, WM_SYSCOMMAND, SC_MOVE, 0)
    
    End Sub

    cuando invocas lo haces

    mover(Me.Handle)

    desde el gorm le pasas el valor

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 10 de enero de 2013 5:52

Todas las respuestas

  • uan recomendacion, nunca hagas esto

        Catch ex As Exception
        End Try

    definir un error que no haces anda esta muy mal, de ultima lo logueas a un archivo, o haces algo

    despues la conversion podria ser

    Public Sub mover(Handle As Integer)
    
    	ReleaseCapture()
    	Dim res As Int32 = SendMessage(Handle, WM_SYSCOMMAND, SC_MOVE, 0)
    
    End Sub

    cuando invocas lo haces

    mover(Me.Handle)

    desde el gorm le pasas el valor

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 10 de enero de 2013 5:52
  • Hola Leandro:

     Entiendo lo del Try...Catch el detalle es que como este codigo (que no es de mi Autoria) lo utilizo para mover los formularios sin necesidad de  seleccionar la barra de titulo, motivo por el cual no le veo la necesidad de informar, o almacenar la exepcion que pudiera ocurrir.

     Ahora, la adaptacion que me prones la puse en el modulo, no recibo ninguin mensaje de error,  pero no puedo ver el Metodo "mover" desde la clase que representa el formulario, simplemente no aparece. Sabras a que se debe?


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 10 de enero de 2013 15:10
  • pero no puedo ver el Metodo "mover" desde la clase que representa el formulario

    defines el Sub con Public, porque sino esta como public seguro no lo veas


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    jueves, 10 de enero de 2013 15:15
  • Gracias Leandro:

     Mi error estaba en la ubicacion del Modulo, ya que lo tenia en la capa de datos y no en la de presentacion, tuve que agregar un nuevo modulo a mi capa Presentacion, poner el metodo tal cual como me lo indicaste y funciono, el unico cambio es en la invocacion ya que tengo activado Option Strict y me solicitod el siguiente cambio.

     mover(CInt(Me.Handle))

    Despues de eso, todo Ok.

     Te agradezco de sobremanera tu ayuda.


    Saludos desde Monterrey, Nuevo León, México!!!

    jueves, 10 de enero de 2013 15:22