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

#3211
Programación Visual Basic / Re: leer archivo BINARIO
29 Septiembre 2008, 03:37 AM
Cita de: WestOn en 28 Septiembre 2008, 21:48 PM
Grax a tdos, voy ver si lo consigo y ya os digo  ;)

En el code de ░▒▓BlackZeroҖ▓▒░ me da error nada mas arrancar:
nBytes = Len(CodigoHex) \ 2
"Procedimiento externo no es válido (CodigoHex)"

Lo he arreglado ojala y te sirva

Código (vb) [Seleccionar]

        Public Function Hex_String(CodigoHex As String) As String
            Dim i As Double
            Dim nBytes As Double
            Dim ddd As String
            nBytes = Len(CodigoHex) \ 2
            Hex_String = String(nBytes, " ")
            For i = 0 To nBytes - 1
                ddd = ddd & Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2))) 'Mid$(Hex_String, i + 1, 1) = Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2)))
            Next
                Hex_String = ddd
        End Function
' Fin del codigo
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' Convierte los bits a Hexadecimal y despues a String
' Por ejemplo: 077 lo combierte a 4D y despues a la letra  M
' Funcion que funciona en conjunto de la funcion de Haxadecimal a string
' Regresa 2 digitos Hexadecimales por bit (8 por byte)
        Public Function Byte_Hex_String(ByVal x) As String
            x = x And &HFF
            If x < 16 Then
                Byte_Hex_String = Hex_String("0" & Hex(x))
            Else
                Byte_Hex_String = Hex_String(Hex(x))
            End If
        End Function

Private Sub Form_Load()
    MsgBox Hex_String("4d")
    MsgBox Byte_Hex_String("77")
End Sub
#3212
Programación Visual Basic / Re: leer archivo BINARIO
28 Septiembre 2008, 19:29 PM
Cita de: WestOn en 28 Septiembre 2008, 16:33 PM
Mi pregunta es como puedo pasarlo a hexadecimal, y posteriormente (nose como..:S) poder pasarlo a letras normales para cargarlo al text...

Código (vb) [Seleccionar]

        Public Function Hex_String(CodigoHex As String) As String
            Dim i As Double
            Dim nBytes As Double
            Dim ddd As String
            nBytes = Len(CodigoHex) \ 2
            Hex_String = String(nBytes, " ")
            For i = 0 To nBytes - 1
                ddd = ddd & Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2))) 'Mid$(Hex_String, i + 1, 1) = Chr$(Val("&H" & Mid$(CodigoHex, i * 2 + 1, 2)))
            Next
                Hex_String = ddd
        End Function
' Fin del codigo
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' --------------------------------------------------------------------------->
' Convierte los bits a Hexadecimal y despues a String
' Por ejemplo: 077 lo combierte a 4D y despues a la letra  M
' Funcion que funciona en conjunto de la funcion de Haxadecimal a string
' Regresa 2 digitos Hexadecimales por bit (8 por byte)
        Public Function Byte_Hex_String(ByVal x) As String
            x = x And &HFF
            If x < 16 Then
                Byte_Hex_String = Hex_String("0" & Hex(x))
            Else
                Byte_Hex_String = Hex_String(Hex(x))
            End If
        End Function

Private Sub Form_Load()
    MsgBox Hex_String("4d")
    MsgBox Byte_Hex_String("77")
End Sub

#3213
Programación Visual Basic / Re: Una ayudita pliss
23 Septiembre 2008, 05:44 AM
el que pide que le realicen la tarea y despues nos llame engreidos es un idiota pero bue ni que asi son:

Nike42:

Ahora ese que pides o del multiline o como los textbox seria midiendo el ancho del caracter pero antes medir el anchoo del rectangulo y dividirlo entre el ancho de el caracter para asi determinar cuando se deberia de realizar un salto de linea algo asi ve:



Ancho digamos del picture (representado por la linea de abajo):

|------------------------------|

Ancho = DeLaLinea

despues usas la funcion:

AnchoTextual = picture1.Textwidth("Aca el texto")

Si anchotextual>=ancho entonces
   salta a la siguiente linea
de lo contrario
   sigue en la linea


lo pongo asi por que la verdad debes pensar un poco eso de multiline es algo facil colo usa la concatenacion con el texto actual con  VBNewLine o chr$(13)

Citarcon respecto al proyecto en general, queria saber si despues que se hace el drawtext o el paint picture no hay forma de volver hacia atras, osea deshacer lo hecho o ya queda grabado en la imagen.

bueno eso ya es a tu ingenio ya que despues de dibujar en un picture me parece que no se desase pero eso tiene arreglo solo ingeniatelas a mi se me ocurre cargar la imagen x en dos picture

uno visible y uno no visible y si dese desaser un cambio en el picture2 (el que no se ve) qeu guarde la imagen original y despues por medio de variables se guarden los hechos que se puedan desaser y segun estos cortar X trozos de la imagen del picture2 al picture1 y hacer los cambios...

algo loco pero resultante

P.D. a mi se me ocurrio esto ati se te puede ingeniar otra cosa mas facil (la que mendiona usaria matrices de variables en las que se guardar informacion de X puntos de restauracion de los cambiso de la imagen algo asi como en Paint)
#3214
Cita de: maxnet en 23 Septiembre 2008, 04:01 AM
holas

baje el tuto pero me pide una contraseña


saludos

es:

http://seth.inkt.fdchost.com/
#3215
Cita de: WestOn en 22 Septiembre 2008, 23:58 PM
Wenas, quisiera q me dieran alguna recomendacion (y a ser posible un pequeño ejemplo) acerca de un joiner q pueda mezclar archivos tipo avi, ya q no he encontrado nada de lo q servirme..

muxas gracias y un saludo ;)

esto me parece SPAM usa el Boton   Buscar
#3216
Programación Visual Basic / Re: Mandar click
23 Septiembre 2008, 00:07 AM
webbrowser a segun yo se muentras el webbrowser este oculto no se puede trabajar con este o no se si lo que quieres es mandar un click a un boton de algun programa usa EnumChildWindows en un Webbroser leete algunos post atras que esta la respuesta al parecer
#3217
Programación Visual Basic / Re: Mandar click
22 Septiembre 2008, 12:23 PM
Cita de: demoniox12 en 20 Septiembre 2008, 06:47 AM
Cita de: Lambda en 20 Septiembre 2008, 01:50 AM
creo que obteniendo el hwnd del elemento al que haces click y enviandole el mensjae WM_CLICK puedes hacerlo

Obtener el Hwnd es enlistando las subventanas del programa pasate a ver un post mio anterior (espero y esa forma funcione con lo que buscas): <click>
Código (vb) [Seleccionar]

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" ( _
     ByVal hWnd As Long, _
     ByVal wMsg As Long, _
     ByVal wParam As Long, _
     ByRef lParam As Any) As Long

Private Const BM_CLICK As Long = &HF5&



Private Sub Command1_Click()
MsgBox "hola mundo"
End Sub

Private Sub Form_Click()
    SendMessage Command1.hWnd, BM_CLICK, 0, 0
End Sub
#3218
Programación Visual Basic / HDC a Picture
22 Septiembre 2008, 06:55 AM

HDC a Picture

con respecto a los PNG seria cargarlo a el modulo y despues transformarlo a pictura o bitmap  ve esta funcion sacada de la Api-Guide

la funcion en si transforma de un Hdc a Picture ok' [como ejemplo poongo este codigo completo de la Api-Guide]
Código (vb) [Seleccionar]

Const RC_PALETTE As Long = &H100
Const SIZEPALETTE As Long = 104
Const RASTERCAPS As Long = 38
Private Type PALETTEENTRY
    peRed As Byte
    peGreen As Byte
    peBlue As Byte
    peFlags As Byte
End Type
Private Type LOGPALETTE
    palVersion As Integer
    palNumEntries As Integer
    palPalEntry(255) As PALETTEENTRY ' Enough for 256 colors
End Type
Private Type GUID
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(7) As Byte
End Type
Private Type PicBmp
    Size As Long
    Type As Long
    hBmp As Long
    hPal As Long
    Reserved As Long
End Type
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (PicDesc As PicBmp, RefIID As GUID, ByVal fPictureOwnsHandle As Long, IPic As IPicture) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal iCapabilitiy As Long) As Long
Private Declare Function GetSystemPaletteEntries Lib "gdi32" (ByVal hdc As Long, ByVal wStartIndex As Long, ByVal wNumEntries As Long, lpPaletteEntries As PALETTEENTRY) As Long
Private Declare Function CreatePalette Lib "gdi32" (lpLogPalette As LOGPALETTE) As Long
Private Declare Function SelectPalette Lib "gdi32" (ByVal hdc As Long, ByVal hPalette As Long, ByVal bForceBackground As Long) As Long
Private Declare Function RealizePalette Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Function CreateBitmapPicture(ByVal hBmp As Long, ByVal hPal As Long) As Picture
    Dim R As Long, Pic As PicBmp, IPic As IPicture, IID_IDispatch As GUID

    'Fill GUID info
    With IID_IDispatch
        .Data1 = &H20400
        .Data4(0) = &HC0
        .Data4(7) = &H46
    End With

    'Fill picture info
    With Pic
        .Size = Len(Pic) ' Length of structure
        .Type = vbPicTypeBitmap ' Type of Picture (bitmap)
        .hBmp = hBmp ' Handle to bitmap
        .hPal = hPal ' Handle to palette (may be null)
    End With

    'Create the picture
    R = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)

    'Return the new picture
    Set CreateBitmapPicture = IPic
End Function
Function hDCToPicture(ByVal hDCSrc As Long, ByVal LeftSrc As Long, ByVal TopSrc As Long, ByVal WidthSrc As Long, ByVal HeightSrc As Long) As Picture
    Dim hDCMemory As Long, hBmp As Long, hBmpPrev As Long, R As Long
    Dim hPal As Long, hPalPrev As Long, RasterCapsScrn As Long, HasPaletteScrn As Long
    Dim PaletteSizeScrn As Long, LogPal As LOGPALETTE

    'Create a compatible device context
    hDCMemory = CreateCompatibleDC(hDCSrc)
    'Create a compatible bitmap
    hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)
    'Select the compatible bitmap into our compatible device context
    hBmpPrev = SelectObject(hDCMemory, hBmp)

    'Raster capabilities?
    RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS) ' Raster
    'Does our picture use a palette?
    HasPaletteScrn = RasterCapsScrn And RC_PALETTE ' Palette
    'What's the size of that palette?
    PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE) ' Size of

    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
        'Set the palette version
        LogPal.palVersion = &H300
        'Number of palette entries
        LogPal.palNumEntries = 256
        'Retrieve the system palette entries
        R = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))
        'Create the palette
        hPal = CreatePalette(LogPal)
        'Select the palette
        hPalPrev = SelectPalette(hDCMemory, hPal, 0)
        'Realize the palette
        R = RealizePalette(hDCMemory)
    End If

    'Copy the source image to our compatible device context
    R = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy)

    'Restore the old bitmap
    hBmp = SelectObject(hDCMemory, hBmpPrev)

    If HasPaletteScrn And (PaletteSizeScrn = 256) Then
        'Select the palette
        hPal = SelectPalette(hDCMemory, hPalPrev, 0)
    End If

    'Delete our memory DC
    R = DeleteDC(hDCMemory)

    Set hDCToPicture = CreateBitmapPicture(hBmp, hPal)
End Function
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    'Create a picture object from the screen
    Set Me.Picture = hDCToPicture(GetDC(0), 0, 0, Screen.Width / Screen.TwipsPerPixelX, Screen.Height / Screen.TwipsPerPixelY)
End Sub


solo edita la linea siguiente y edita los datos requeridos

Código (vb) [Seleccionar]

    Set Picture2.Picture = hDCToPicture(Picture1.hdc, 0, 0, 100, 100)
[]/code[
#3219
Programación Visual Basic / Re: Una ayudita pliss
22 Septiembre 2008, 06:47 AM
DrawText.

Código (vb) [Seleccionar]

Const DC_ACTIVE = &H1
Const DC_NOTACTIVE = &H2
Const DC_ICON = &H4
Const DC_TEXT = &H8
Const BDR_SUNKENOUTER = &H2
Const BDR_RAISEDINNER = &H4
Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER)
Const BF_BOTTOM = &H8
Const BF_LEFT = &H1
Const BF_RIGHT = &H4
Const BF_TOP = &H2
Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)
Const DFC_BUTTON = 4
Const DFC_POPUPMENU = 5            'Solo Win98/2000 !!
Const DFCS_BUTTON3STATE = &H10
Const DT_CENTER = &H1
Const DC_GRADIENT = &H20          'Solo Win98/2000 !!

Private Type RECT
   Left As Long
   Top As Long
   Right As Long
   Bottom As Long
End Type
Private Declare Function DrawText Lib "user32" Alias "DrawTextA" (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long
Private Sub Form_Load()
AutoRedraw = True
Dim r As RECT
r.Top = 0
r.Left = 0
r.Bottom = 20
r.Right = 500
DrawText Me.hdc, "Holaaaaaaaaaa", Len("Holaaaaaaaaaa"), r, BF_RECT Or BF_TOP
End Sub


BitBlt

usa dos piture en el picture1 carga alguna imagen en el segundo no pogas nada
Código (vb) [Seleccionar]

Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Sub Form_Load()
Picture1.ScaleMode = 3
Picture2.ScaleMode = 3
Picture1.AutoRedraw = True
Picture2.AutoRedraw = True
r = BitBlt(Picture2.hdc, 0, 0, 100, 100, Picture1.hdc, 10, 10, vbSrcCopy)
End Sub


Transparect Blt (Sacado de la Api-Guide)

Código (vb) [Seleccionar]

'This project needs 2 pictureboxes
'Picturebox1 must contain a picture with a lot of white pixels (we're going to use white as transparent color)
Private Declare Function TransparentBlt Lib "msimg32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal crTransparent As Long) As Boolean
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net
    Picture1.AutoSize = True
    'API uses pixels
    Picture1.ScaleMode = vbPixels
    Picture2.ScaleMode = vbPixels
End Sub
Private Sub Picture2_Paint()
    'If we don't call DoEvents first, our transparent image will be completely wrong
    DoEvents
    TransparentBlt Picture2.hdc, 0, 0, Picture2.ScaleWidth, Picture2.ScaleHeight, Picture1.hdc, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight, vbWhite
End Sub
#3220
Programación Visual Basic / Re: Una ayudita pliss
22 Septiembre 2008, 02:34 AM
PaintPicture
las demas estan ya posteadas me parece en este foro si no busca en la Api-Guide