elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6 7
21  Programación / Programación Visual Basic / Re: API urlmon en: 13 Marzo 2006, 15:56 pm
Una función importada no es un objeto, y tampoco una DLL. Si la biblioteca falta produce el error de "No se ha encontrado el archivo" al querer llamar a la función.
22  Programación / Programación Visual Basic / Re: seleccionar elemento listbox en: 13 Marzo 2006, 15:55 pm
Código:
Sub MatchStr(csListBox As ListBox, ByVal StringToMatch As String, Optional Start As Long)
      Dim lIndex&
 
  lIndex = SendMessage(csListBox.hwnd, LB_FINDSTRING, ByVal Start, ByVal StringToMatch)
 
  If lIndex > LB_ERR Then
    csListBox.ListIndex = lIndex
  End If
End Sub

Busca la declaración de SendMessage y las constantes LB_FINDSTRING y LB_ERR.
23  Programación / Programación Visual Basic / Re: Llamar desde vb a una macro de una base de datos en: 13 Marzo 2006, 15:47 pm
Código:
Sub RunAccMacro()
   Dim oAccess as Object, oDB as Object
   Set oAccess = CreateObject("Access.Application")
   oAccess.Visible = True
   Call oAccess.OpenCurrentDatabase("C:\DB1.mdb")
   Call oAccess.Run("MyAccessMacro")
End Sub
24  Programación / Programación Visual Basic / Re: actualizacion por plugins! ayuda plz en: 12 Marzo 2006, 15:17 pm
El siguiente ejemplo es mediante menús, lo que tenés que hacer es crear un menú llamado mnuPlugin con el índice 0.

Luego al inicio del programa carga desde un archivo (puede ser desde otro lado) los plugins instalados, y los pone en el menú. Después carga los plugins cuando se hace click en el menú correspondiente.

Ah, y también registra el componente en segundo plano por si no está registrado. No te olvides de tener en cuenta que los plugins no están en el directorio del sistema sino que deben estar en PLUGIN_PATH, relativo al path del programa.

Código:
Const PLUGIN_PATH = "plugins\"

Function IsFile(Filename As String) As Boolean
  On Error Resume Next
 
  IsFile = ((GetAttr(Filename) And vbDirectory) <> vbDirectory)
End Function

Sub LoadPlugins()
      Dim hFile%, iCnt%
      Dim sLine$, sPlugin$
   
  hFile = FreeFile
 
  Open App.Path & "\plugins.txt" For Input As #hFile
 
  Do While Not EOF(hFile)
    Line Input #hFile, sLine
   
    sPlugin = App.Path & "\" & PLUGIN_PATH & sLine
   
    If IsFile(sPlugin) Then
      ' Registra el componente por si no está registrado.
      '
      Call Shell("REGSVR32.EXE /u " & Chr$(34) & sPlugin & Chr$(34))
      Call Shell("REGSVR32.EXE /s " & Chr$(34) & sPlugin & Chr$(34))
     
      If iCnt > 0 Then
        Call Load(mnuPlugin(iCnt))
       
        mnuPlugin(iCnt).Visible = True
      End If
     
      mnuPlugin(iCnt).Caption = sLine
     
      iCnt = iCnt + 1
    End If
  Loop
 
  Close #hFile
End Sub

Private Sub Form_Load()
  Call LoadPlugins
End Sub

Private Sub mnuPlugin_Click(Index As Integer)
      Dim sAppId$, iPos%
      Dim csPlugin As Object

  iPos = InStr(1, mnuPlugin(Index).Caption, ".dll")
 
  If iPos Then
    sAppId = Left$(mnuPlugin(Index).Caption, iPos - 1) & ".VBPlugin"
   
    Set csPlugin = CreateObject(sAppId)
   
    Call csPlugin.CargarPlugin(Me)
  End If
End Sub

En el archivo plugins.txt debería haber algo así:

Citar
Plugin1.dll
Plugin2.dll
25  Programación / Programación Visual Basic / Re: Graphics en: 11 Marzo 2006, 22:21 pm
Propiedad AutoRedraw a True
26  Programación / Programación Visual Basic / Re: Pestañas en el Form en: 11 Marzo 2006, 20:23 pm
NYlOn, si lo ocultas libera los recursos de GDI, por lo que el programa irá mucho más rápido sobre todo tratandose de un programa con muchos controles, usando ZOrder las imágenes quedan cargadas en memoria.

Yo dejé de usar ZOrder porque realmente ocultar los controles contenedores es un excelente método de optimización de rendimiento.
27  Programación / Programación Visual Basic / Re: Pestañas en el Form en: 11 Marzo 2006, 20:15 pm
A mi me gusta hacerlo personalizado, y le saco más provecho al rendimiento y todo. Por ejemplo, usas botones de opción con la propiedad Style a Graphical, y creas controles PictureBOX que contendrán cada parte del código. A cada uno le pones un índice, que corresoponda cada OptionButton a un PictureBox.

Luego en el evento Click de la matriz de OptionButton's traes al frente al PictureBox que le corresponde.

Por ejemplo, crea 4 OptionButtons y establece la propiedad Style a Graphical, y a cada uno un índice y el mismo nombre, podría ser optTab.

Luego crea 4 PictureBox con el mismo nombre y sus respectivos índices, podrías llamarlos picSection. Luego en el código pondrías lo siguiente:

Código:
Private Sub optTab_Click(Index As Integer)
        Dim i%

  For i = 0 To picSection.Count - 1
    picSection(i).Visible = False
  Next
 
  picSection(Index).Visible = True
End Sub

Y dentro de cada PictureBox pones los controles que quieras, esto está bueno para un diálogo de opciones y consume muy pocos recursos GDI.

Si querés las Tabs que tienen las propiedades por ejemplo, usa el control TabStrip, incluido en Microsoft Windows Common Controls 6.0 (SP4). Pero de todas maneras vas a necesitar hacer algo similar a lo anterior, sólo es un control gráfico pero no contenedor.

Saludos.
28  Programación / Programación Visual Basic / Re: actualizacion por plugins! ayuda plz en: 11 Marzo 2006, 06:39 am
No lo probé y no sé donde está el error, pero ya te digo que eso no va a funcionar, no se puede pasar como argumento un objeto privado como lo es un Form a una función en un módulo de clase público, ni se puede forzar a un Object.
29  Programación / Programación Visual Basic / Re: Centrar texto manualmente en: 11 Marzo 2006, 06:36 am
Depende relativo a qué sea, pero si es un control de usuario por ejemplo es lo que pusiste, con una correción:

Código:
CentroX = AnchoBoton/2-AnchoTexto/2

El ancho del texto lo obtenés con TextWidth, y varía según la fuente que se use, por eso fijate que la fuente de lo que sea que contenga el texto o donde se va a dibujar, contenga la misma fuente que el objeto que uses para llamar a TextWidth, ya sea un formulario, UserControl o PictureBox.

Saludos.
30  Programación / Programación Visual Basic / Re: Donacion: Proyecto Explorador Remoto en: 11 Marzo 2006, 05:01 am
El link

Citar

Supongo que para w9x con un par de modificaciones funcionaría, arregla el link y lo veo.

Saludos.
Páginas: 1 2 [3] 4 5 6 7
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines