Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Ayuda para aplicaciones con vb .net

Iniciado por frederickzea, 24 de Diciembre de 2006, 05:44:35 AM

« anterior - próximo »

frederickzea

Hola, soy nuevo... estoy intentando ejecutar los ejemplos del tutorial y no paso del ejemplo 2 , mi problema estar en esta parte creo
'Inicializamos la clase y el modo de video a 640x480 en modo ventana:
       Call m_gfx.Init(Me.hwnd, 640, 480, , True)
me aparece como si  Me.hwnd   no es un miembro de mi aplicacion... lo que he hecho es lo siguiente
Call m_gfx.Init(m_gfx.hwnd, 640, 480, , True)
pero parece que no hace nada...
en el ejemplo 2 aparece esto
'Cargamos un grafico en memoria:
       Sprite = m_gfx.MAP_Load(App.Path & "E:\dx_lib32v21190\tutoriales\dx_GFX\Tut02\Texture.png", 0)
tambien me marca error, lo he solucionado de varias formas: creando una funcion :
Public Function AppPath() As String
       Return System.AppDomain.CurrentDomain.BaseDirectory()
   End Function
o colocando esto CurDir() en vez de App.Path  ....
o esto Application.StartupPath en vez de App.Path ... pero al ejecutarlo no me carga ninguna imagen....
denme una mano porfavor.. gracias

shephiroth

Prueba a ver donde aparece el Me.hwnd a poner this.hwnd o hwnd directamente (sin declararlo tu arriba, este es una variable heredada).

frederickzea

Cita de: shephirothPrueba a ver donde aparece el Me.hwnd a poner this.hwnd o hwnd directamente (sin declararlo tu arriba, este es una variable heredada).
Gracia por tu respuesta, pero el Vb .net 2005 no reconoce el this, este es todo el codigo del ejemplo 1:
Public Class Form1

   Dim m_gfx As dx_lib32.dx_GFX_Class
   'Controla el bucle principal:
   Dim Looping As Boolean

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


       'Creamos la instancia de la clase dx_GFX:
       m_gfx = New dx_lib32.dx_GFX_Class

       'Inicializamos la clase y el modo de video a 640x480 en modo ventana:
       Call m_gfx.Init(Me.m_gfx.hwnd, 640, 480, True)

       Looping = True

       Do While Looping
           'Ejecutamos las llamadas de la clase grafica:
           Call m_gfx.Frame()

       Loop

       'Terminamos la ejecucion de la clase:
       Call m_gfx.Terminate()

       'Destruimos la instancia de la clase:
       m_gfx = Nothing

       End
   End Sub

   Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
       Looping = False
   End Sub
End Class


y este es el codigo del ejemplo 2:



Public Class Form1
   'Variable objeto que apunta a la clase dx_GFX:
   Dim m_gfx As New dx_lib32.dx_GFX_Class
   'Alamcena el valor del grafico en memoria:
   Dim Sprite As Long
   'Controla el bucle principal:
   Dim Looping As Boolean
   Public Function AppPath() As String
       Return System.AppDomain.CurrentDomain.BaseDirectory()
   End Function

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

       'Mostramos la ventana:
       Me.Show()
       'Creamos la instancia de la clase dx_GFX:
       'm_gfx = New dx_lib32.dx_GFX_Class

       'Inicializamos la clase y el modo de video a 640x480 en modo ventana:
       Call m_gfx.Init(Me.m_gfx.hwnd, 640, 480, , True)

       'Cargamos un grafico en memoria:
       Sprite = m_gfx.MAP_Load(AppPath() & "E:\dx_lib32v21190\tutoriales\dx_GFX\Tut02\Texture.png", 0)

       Looping = True

       Do While Looping
           'Dibujamos el grafico en las coordenada 340, 240 con su tamaño original:
           Call m_gfx.DRAW_Map(Sprite, 32, 32, 0, 0, 0)

           'Ejecutamos las llamadas de la clase grafica:
           Call m_gfx.Frame()

       Loop

       'Descargamos el grafico de la memoria:
       Call m_gfx.MAP_Unload(Sprite)

       'Terminamos la ejecucion de la clase:
       Call m_gfx.Terminate()

       'Destruimos la instancia de la clase:
       m_gfx = Nothing

       End
   End Sub

   Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
       Looping = False
   End Sub
End Class


Cuando ejecuto el programa me muestran un formulario simple sin ninguna variacion, cuando reviso linea a linea el codigo  el Me.m_gfx.hwnd siempre vale 0....
Me podrian decir que hice mal?..gracias

[EX3]

No es por nada, pero este tema no deberia ir en su respectivo foro? :P Si ubicais estas dudas fuera del foro del proyecto lo mas probable es que no las lea ya que no siempre visito el resto de subforos.

Al tema, en Visual Basic .NET no existe la propiedad hWnd de la ventana si no Handle, que viene a ser exactamente lo mismo. Quitando esta leve diferencia de nombres, las pruebas que realice en Visual Basic .NET 2005 no tuve apenas que realizar cambios en el codigo de los tutoriales, asi que supongo que no encontrareis muchos problemas en este sentido, lo unico, que como en este caso, conozcais los elementos y sus equivalentes de Visual Basic 6.0.

Por cierto, esta linea esta mal:
Sprite = m_gfx.MAP_Load(AppPath() & "E:\dx_lib32v21190\tutoriales\dx_GFX\Tut02\Texture.png", 0)
App.Path, que tampoco existe en Visual Basic .NET, devuelve la ruta donde esta ubicado el programa. En este caso no deberiais escribir una ruta absoluta si no solo la ruta o el nombre del archivo segun vuestra ruta actual, un ejemplo:
Supongamos que el programa esta en la ruta "E:\dx_lib32v21190\tutoriales\dx_GFX\Tut02\" y "Texture.png" la tenemos junto al programa en el mismo directorio, como es el caso. La ruta que teneis que indicar seria:
Sprite = m_gfx.MAP_Load(AppPath() & "\Texture.png", 0)
De esta forma os evitais problemas si moveis el programa a cualquier otro lugar u otra maquina ya que la ruta siempre se adapta a donde este el programa.

Por curiosidad, que proyecto estais desarrollando con la libreria? :)

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

frederickzea

Feliz Navidad, y Feliz año, te agradezco un monton la orientacion que me has dado, voy a probarlo mañana mismo aver si  da resultado,, una consulta... cual es el foro correcto para hacer estas preguntas.. dame el enlace por fa....

[EX3]

Busca en el directorio de subforos de stratos, en la seccion proyectos o bien desde la barra de enlaces de la web de la dx_lib32.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.