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

#1701
.
Debes usar structuras o un modulo de clase.

Ejemplo con una estructura...

Código (vb) [Seleccionar]


Option Explicit

Private Type tSctructure
  vData As String
  vOTros() As String
End Type

Dim vtVar As tSctructure

Sub main()
    vtVar.vData = "BlackZeroX"
    MsgBox vtVar.vData
    Rem o tambien asi
    With vtVar
        .vData = "BlackZeroX"
        MsgBox .vData
    End With
End Sub



Dulces Lunas!¡.
#1702
Cita de: ignorantev1.1 en 14 Diciembre 2010, 17:28 PM
Encontre varios Fr4NN, tampoco te informa si ganaste o no y otro que deja de contar las chances... no es pretexto pero lo hice hace algun tiempo, pero no lo termine y antes de postearlo lo "termine" sin siquiera probarlo  :laugh:

Te informa solo y unicamente si terminas tus turnos.

Dulces Lunas!¡.
#1704
.
El primero esta hermoso para pasar el rato.

Dulces Lunas!¡.
#1705
.
Cita de: ignorantev1.1 en 14 Diciembre 2010, 01:33 AM
Lo del alambre estirado nunca me lo hice por que habia un mito que decia que un niño se electrocuto haciendo eso  :o...

De niño sufri muchos accidentes con el agua y un calentador electrico, metia o tocaba sin querer dicha agua con corriente electrica, asiq ue eso del cable lo tome como una idiotes y bueno ademas queria jugar... mi padre no me daba dinero, me lo tenia que ganar... o ingeniarmelas para jugar un buen rato, y he de hay lo del cablesito!¡.

Nota: a esa edad jugab mucho con los dispositivos electronicos... a los 8 años rompi un Stereo que no tenia mas de 3 meses que compro mi hermana... fue a martillasos para sacarle un motor y hacer mis experimentos de aquel entonces...

Por otro lado...

Cita de: LeandroA en 14 Diciembre 2010, 01:26 AM
jaja eso es un Argento, yo tambien lo hacia.

Si Argento te refieres por "Chalupa Electrica" como se conoce en México ignoro otras partes o te refieres a una expresion pr que en google me aparecio esto

http://www.google.com.mx/images?q=Argento&oe=utf-8&rls=org.mozilla:es-ES:official&client=firefox-a&um=1&ie=UTF-8&source=og&sa=N&hl=es&tab=wi&biw=1024&bih=575

Dulces Lunas!¡.
#1706
Cita de: ignorantev1.1 en 13 Diciembre 2010, 20:47 PM
Es que hay uno que se llama Galaxian y otro que es Galaga, creo que son diferentes   :)... me viene los recuerdos de falcificar fichas para la maquinita  con monedas antiguas o fichas de las cajas electricas :laugh:  :xD


Yo lo hacia con un cable estirado como de 15 cm, y una punta asemejando la circunferencia de una moneda... de igual manera con las rondanas, monedas antiguas ( sin valor obvio ), o con las rueditas de las chalupas...



P.D.: para el cable se nesesita 1 compañero minimo para hecharte aguas...

Dulces Lunas!¡.
.
#1707
.
Esta bonito, lo unico que veo es que salen disparos del enemigo de lugares donde no hay enemigos ¬¬"

P.D.: en México lo conocemos por Galaxy

Temibles Lunas!¡.
.
#1708
.
Bueno ando con un rollo en el vb6 y es que ando creando un UC ( ya tiene mucho que llevo con esto pero no he tenido mucho tiempo para terminarlo ), mi problema es que en el UC resivo los mensajes con GetMessage y los dejo fluir con DispatchMessage pero he aqui el problema en DispatchMessage cundo termino el form donde tengo el UC se queda todo el programa en dicha linea y por esta linea no se puede cerrar el programa o form en cuestion.

En pocas palabras una alternativa a estas apis cual seria?, las he usado por que estas no me traban de forma innesesaria el programa, en cambio PeekMessage tengo que hacer un Bucle pero este a diferencia de las otras dos apis se le escapan mensajes, por ende no me sirve ademas que tengo que ponerle doevents y cosillas dentro del bucle para que no se coma el procesador.

Este es el codigo, lo programe para que dejara de procesar mensajes si le llegan los mensajes WM_CLOSE o WM_DESTROY, pero esto no me gusta mucho que digamos.

Código (Vb) [Seleccionar]


'   //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //
'   //  El Objetivo de este proceso es que el Control de Usuario sea Maleable,
'   //  de igual forma por que lo pienso pasar a C++ y esto me ayudara despues,
'   //  se que aqui no se tratan los mensajes si no mas bien en el Callback
'   //  WindProc() pero bueno, es solo una obtativa para vb6 de forma cutre
'   //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //
'   //  ----------------------------------------------------------------------  //
'   //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //
'   //  No es la manera mas Ortodoxa pero asi me evito usar TODO el Procesador...
'   //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //  //

Private Sub ProcessMessages()
Dim vMsg                                As Msg
Dim bool_MsgCancel                      As Boolean
Dim Button                              As Integer
Dim tPoint                              As POINTAPI
Dim Shift                               As Integer
   
   bool_MsgCancel = False
   
   Do While GetMessage(vMsg, 0, 0, 0) And bool_MsgCancel = False
       If vMsg.hwnd = UserControl.hwnd Or _
          vMsg.hwnd = VS.hwnd Or _
          vMsg.hwnd = HS.hwnd Then
           
           Select Case vMsg.message
               
               '   //  Mensajes del Mouse
               Case WM.WM_MOUSEWHEEL, WM.WM_MOUSEMOVE, _
                    WM.WM_LBUTTONDBLCLK, WM.WM_LBUTTONDOWN, WM.WM_LBUTTONUP, _
                    WM.WM_RBUTTONDBLCLK, WM.WM_RBUTTONDOWN, WM.WM_RBUTTONUP, _
                    WM.WM_MBUTTONDBLCLK, WM.WM_MBUTTONDOWN, WM.WM_MBUTTONUP

                   tPoint = GetCursorRegion
                   
                   If vMsg.wParam = MK.MK_CONTROL Then
                       Shift = 2
                   ElseIf vMsg.wParam = MK.MK_SHIFT Then
                       Shift = 1
                   Else
                       Shift = 0
                   End If
                   
                   Select Case vMsg.message
                       Case WM.WM_MOUSEWHEEL
                           Debug.Print "WM_MOUSEWHEEL"
                           If vMsg.wParam < 0 Then
                               If (DatosScrollGhost(1).Visible Or VS.Visible) Then
                                   Scroll_V = Priv_SV + int_hRow
                               End If
                           Else
                               If (DatosScrollGhost(0).Visible Or VS.Visible) Then
                                   Scroll_V = Priv_SV - int_hRow
                               End If
                           End If
                           
                       Case WM.WM_LBUTTONDBLCLK
                           Debug.Print "WM_LBUTTONDBLCLK"
                           Call lvDblClick
                       Case WM.WM_RBUTTONDBLCLK
                           Debug.Print "WM_RBUTTONDBLCLK"
                           Call lvDblClick
                       Case WM.WM_MBUTTONDBLCLK
                           Debug.Print "WM_MBUTTONDBLCLK"
                           Call lvDblClick
                           
                       Case WM.WM_LBUTTONDOWN
                           Debug.Print "WM_LBUTTONDOWN"
                           Button = 1
                           Call lvMouseDown(Button, Shift, tPoint.X, tPoint.Y)
                       Case WM.WM_RBUTTONDOWN
                           Debug.Print "WM_RBUTTONDOWN"
                           Button = 2
                           Call lvMouseDown(Button, Shift, tPoint.X, tPoint.Y)
                       Case WM.WM_MBUTTONDOWN
                           Debug.Print "WM_MBUTTONDOWN"
                           Button = 4
                           Call lvMouseDown(Button, Shift, tPoint.X, tPoint.Y)
                           
                       Case WM.WM_LBUTTONUP, WM.WM_RBUTTONUP, WM.WM_MBUTTONUP
                           Debug.Print "WM_LBUTTONUP"
                           Call lvMouseUp(Button, Shift, tPoint.X, tPoint.Y)
                           Call lvClick
                           Button = 0
                           
                       Case WM.WM_MOUSEMOVE
                           Debug.Print "WM_MOUSEMOVE"
                           Call lvMouseMove(Button, Shift, tPoint.X, tPoint.Y)
                           
                   End Select
               
               '   //  Teclas Pulsadas...
               Case WM.WM_KEYDOWN
                   Debug.Print "WM_KEYDOWN", vMsg.wParam
                   Select Case vMsg.wParam
                       Case VK.VK_UP
                           If DatosScrollGhost(0).Visible Or VS.Visible Then
                               Scroll_V = Priv_SV - int_hRow   'Priv_SV - int_hRow
                           End If
                           
                       Case VK.VK_Down
                           If DatosScrollGhost(1).Visible Or VS.Visible Then
                               Scroll_V = Priv_SV + int_hRow   'Priv_SV + int_hRow
                           End If
                           
                       Case VK.VK_Left
                           If DatosScrollGhost(3).Visible Or HS.Visible Then
                               Scroll_H = Priv_SH - 20   'Priv_SH - 20
                           End If
                           
                       Case VK.VK_RIGHT
                           If DatosScrollGhost(3).Visible Or HS.Visible Then
                               Scroll_H = Priv_SH + 20   'Priv_SH + 20
                           End If
                       
                       Case VK.VK_HOME
                           Scroll_V = 0
                           
                       Case VK.VK_END
                           If RowVisibleCount < CantRows Then
                               Scroll_V = (CantRows * int_hRow) - (RectLista.Bottom - RectLista.Top)
                           End If
                           
                       Case VK.VK_SHIFT
                           cAoDSS = True
                           Shift = 1
                           
                       Case VK.VK_CONTROL
                           cAoDSC = True
                           Shift = 2
                           
                       Case VK.VK_PRIOR
                           Scroll_V = Priv_SV - RowVisibleCount * int_hRow
                           
                       Case VK.VK_NEXT
                           Scroll_V = Priv_SV + RowVisibleCount * int_hRow
                                                     
                   End Select
                   RaiseEvent KeyDown(Int(vMsg.wParam), Shift)
                   
               Case WM.WM_KEYUP
                   Debug.Print "WM_KEYUP", vMsg.wParam
                   Select Case vMsg.wParam
                       Case VK.VK_SHIFT
                           cAoDSS = False
                           Shift = 0
                           
                       Case VK.VK_CONTROL
                           cAoDSC = False
                           Shift = 0
                   End Select
                   RaiseEvent KeyUp(Int(vMsg.wParam), Shift)
                   RaiseEvent KeyPress(Int(vMsg.wParam))
                   
               '   //  Mesajes de la Ventana
               Case WM.WM_ACTIVATE
                   Debug.Print "WM_ACTIVATE"
                   
               Case WM.WM_CLOSE, WM.WM_DESTROY
                   Debug.Print "WM_CLOSE", "WM_DESTROY"
                   bool_MsgCancel = True
                   Exit Sub
                   
               Case WM.WM_PAINT
                   If vMsg.wParam = 0 Then
                       Call Refresh
                   Else
                       Call RefreshCols(vMsg.lparam)
                   End If
                   
               Case WM.WM_ENABLE
                   'wParam
                   '   Indicates whether the window has been enabled or disabled. This parameter is TRUE if the window has been enabled or FALSE if the window has been disabled.
                   'lparam
                   '   This parameter is not used.
                   Debug.Print "WM_ENABLE"
                   
               Case Else
               
           End Select
           
       End If
       Call DispatchMessage(vMsg)
       'Call WaitMessage
   Loop
End Sub



P.D.: Que no sea por subclasificación... aun que si no tengo otra opcion...

Temibles Lunas!¡.
#1709
.
Quiero creer que es por el Theme Aero en W$7 en los forms, busca un codigo que publico Skyweb07/09.

Dulces Lunas!¡.
#1710
.
Lee algo sobre Stack o pila para que comprendas como funciona la reursividad1¡.

En si sobre el Stack/Pila  es que el ultim se coloca ensima del ultimo y el ultimo es el que sale primero siendo el primero que se agrego siendo el ultimo, de forma mas practicas es como poner en una mesa una torre de libros, dichos libros ensima de otros y por obvias razones el primero que agregaste sera el ultimo en retirar de la columna de libros pero el ultimo que agregaste es el primero en salir.

Ejemplo Basico de Recursividad.

Código (cpp) [Seleccionar]


#include <iostream>

using namespace std;

int autosum(int val,int lim,int valincrement, int aux);

int main()
{
   cout << autosum(10,200,10,0);
   cin.get();
   return (1);
}

int autosum(int val,int Vallim,int valincrement, int aux)
{   /*
   La recursividad tiene la ventja de reduccion de codigo,
   pero tiene la desventaja que crea copias de la misma
   funcion N cantidad de veces necesarias, por ende es lenta.
   */
   if (val >= Vallim)
   {
       return aux;
   } else {
       return autosum(
                      val + valincrement , //  Incrementamos
                      Vallim ,             //  Valor Limite
                      valincrement ,       //  Valor en incremento
                      aux+1);              //  Contador de vueltas
   }
}



Nota: Si vas  manejar Strings o Arrays de caracteres que es lo logico deberas usar punteros para que la misma no se dupplique de forma innecesaria en la memoria.

Dulces Lunas!¡.