• Miércoles 6 de Noviembre de 2024, 00:30

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Isla Programacion

Páginas: [1]
1
Visual Basic 6.0 e inferiores / ZOOM
« en: Sábado 22 de Junio de 2002, 15:37 »
Hola
Pon en un Form un PictureBox y un Timer, pega este código en declaraciones y ejecútalo.

Te mostrará con efecto de zoom la zona donde se encuentra el ratón

Option Explicit

Private Declare Function StretchBlt Lib "gdi32" (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 dwRop As Long) As Long
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Private Const SRCCOPY = &HCC0020
Private Const VelocidadRefrescoMilliSegundos = 100

Private Type POINTAPI
 X As Long
 Y As Long
End Type

Private FactorZoom As Single, UltimaPos As POINTAPI, DimensionAlto As Long, DimensionAncho As Long

Private Sub TakeShot(CenterX As Long, CenterY As Long)
Dim Top As Long, Left As Long, nAlto As Long, nAncho As Long, ScreenDC As Long
nAlto = DimensionAlto * (1 / FactorZoom)
nAncho = DimensionAncho * (1 / FactorZoom)
ScreenDC = GetDC(GetDesktopWindow)
Top = CenterY - (DimensionAlto / (2 * FactorZoom))
Left = CenterX - (DimensionAncho / (2 * FactorZoom))
Call StretchBlt(Picture1.hdc, 0, 0, DimensionAncho, DimensionAlto, ScreenDC, Left, Top, nAncho, nAlto, SRCCOPY)
End Sub

Private Sub Form_Load()
DimensionAlto = 200
DimensionAncho = 300
Picture1.Height = DimensionAlto * Screen.TwipsPerPixelY
Picture1.Width = DimensionAncho * Screen.TwipsPerPixelX
FactorZoom = 2        'Valor inicial de factor de zoom
Timer1.Interval = VelocidadRefrescoMilliSegundos
End Sub

Private Sub Timer1_Timer()
    'Solo refresca la imagen si se ha modificado la
    'posición del mouse, así consume menos recursos
    'y corre más
    Dim NuevaPos As POINTAPI, Changed As Boolean
    Changed = False
    Call GetCursorPos(NuevaPos)
    If NuevaPos.X <> UltimaPos.X Then Changed = True
    If NuevaPos.Y <> UltimaPos.Y Then Changed = True
    If Changed = True Then
        UltimaPos = NuevaPos
        Call TakeShot(UltimaPos.X, UltimaPos.Y)
    End If
End Sub

Saludos.

2
Hola
En http://www.islaprogramacion.com/ encontrarás, en el apartado "Demos" del menú, un ejemplo de como incluir un control en un DbGrid

Saludos

3
Visual Basic 6.0 e inferiores / amigos expertos ayuda como tener un checkbox
« en: Domingo 19 de Mayo de 2002, 11:38 »
Hola

Para colocar una casilla de verificación o cualquier otro control en una posición dada de un DbGrid, debes crear estos controles en tiempo de ejecución y situarlos en la posición adecuada, asignandole los valores.

Si quieres un ejemplo, puedes bajarte una demo donde aparece una lista en una celda de un DbGrid para toda una columna.
La dirección es   www.islaprogramacion.com en el apartado demos la encontrarás.

Saludos.

4
Visual Basic 6.0 e inferiores / Re: Propiedades de CommonDialog
« en: Miércoles 24 de Abril de 2002, 16:39 »
Hola Mar:

Para que te muestre el botón guardar debes usar el método ShowSave.

Saludos.

5
Visual Basic 6.0 e inferiores / RecordCount
« en: Domingo 21 de Abril de 2002, 17:59 »
Hola:

Vgeta, como comentas anteriormente, RecordCount a veces no funciona bien, ésto no es del todo cierto, si funciona bien, el problema radica en que tienes que rellenar el recorset con los datos y esto no sucede hasta quel el puntero recorra los registros. Poner un movelast basta para que esto suceda. Asi que mi consejo es que antes de un RecordCount se haya realizado al menos un MoveLast.

Saludos.

6
Visual Basic 6.0 e inferiores / Como puedo programar un Protector de pantalla
« en: Domingo 21 de Abril de 2002, 17:34 »
Hola:

Para crear un salvapantallas, solo tienes que cambiar al ejecutable que realices, la extención .EXE por .SCR

Ahora bien, tienes que cumplir ciertas reglas.

El form no debe tener bordes ni caption ni controles, es decir le tienes que hacer desaparecer todo aquello que interactúa con el usuario del ordenador y ejecutarlo de forma maximizada.

Tienes que finalizar (unload) el programa mediante los eventos del teclado y del mouse.

Saludos.

7
Visual Basic 6.0 e inferiores / Re: DBGrid seleccionar fila
« en: Martes 26 de Marzo de 2002, 22:34 »
Hola Juan:

El evento RowColChange se ejecuta cada vez que cambia la columna o fila donde este el cursor, ya sea por cambiar de celda o por que lo hagas con el RecordSelectors.

Si lo que quieres es que solo lo haga cuando pulse el selector de la Izda tienes que escribir un condicional (If) que evalue si la fila esta seleccionada, ya que si lo haces mediante el cambio de celda la fila no se selecciona.

Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

End Sub

DBGrid1.SelBookmarks.Count devuelve el numero de filas que tienes en la coleccion de filas seleccionadas.
Puedes usar esta colección para posicionar el puntero de la base de datos en la fila seleccionada.

If DBGrid1.SelBookmarks.Count > 0 Then
Data1.Recordset.Bookmark = DBGrid1.SelBookmarks(0)
Else
'Esto evitaria que el usuario seleccionara otra fila mientras pulsa Shift o Ctrl.
MsgBox "Solo puedes seleccionar una fila para mostrar"
End If

Private Sub DBGrid1_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
   If DBGrid1.SelBookmarks.Count > 0 Then
      Data1.Recordset.Bookmark = DBGrid1.SelBookmarks(0)
      'Aqui situas el código para los TextBox si no están enlazados al data.
   Else
      'Esto evitaria que el usuario seleccionara otra fila mientras pulsa Shift o Ctrl.
      MsgBox "Solo puedes seleccionar una fila para mostrar"
   End If
End Sub

Observa que al igual que los indices de controles el valor del último indice es Count - 1

Saludos.

8
Pon dos CommandButton en un formulario y pega este código en la sección declaraciones

Private Sub Command1_Click()
   Call Command2_Click
End Sub

Private Sub Command2_Click()
   MsgBox "hola"
End Sub

Ejecutalo, verás que al pulsar sobre Command1 se ejecuta el código del evento Click del Command2.

Saludos.

9
Visual Basic 6.0 e inferiores / modulos
« en: Sábado 23 de Marzo de 2002, 02:09 »
Puede que los objetos existan, pero seguro que estos los declaraste en un formulario y no en el modulo.

Puedes pasar los objetos como parametros de esas funciones.

Este ejemplo pasa como parametro un ComboBox si el Item se añade te devuelve Verdadero en caso de error devuelve False.

Public Function AñadirItem(Combo As ComboBox, Valor As String) As Boolean
   On Error Goto Terror
   Combo.AddItem Valor
   AñadirItem = True
   Exit Function
Terror:
   AñadirItem = False
End Function

Al llamar a la función desde cualquier Form de tu proyecto, se añadira a la lista del comboBox pasado como primer parametro, el valor indicado en el segundo parametro. Solo tienes que indicarle con que objeto trabajar y el valor a añadir.

If AñadirItem(MiCombo,"Hola") Then
   MsgBox "El elemento se ha añadido"
Else
   MsgBox "Se ha producido un error"
End If

Esto no es más que un ejemplo, adaptalo al objeto y valores que quieras usar.

Saludos.
Para más información www.islaprogramacion.com

10
Usa la instrucción Call

Call Command1_Click

11
Visual Basic 6.0 e inferiores / Re: ListView
« en: Lunes 18 de Marzo de 2002, 20:35 »
En modo lvwReport el Listview no admite iconos en los SubItem.

12
Hola

La lista de un ComboBox o DbCombo es una matriz de tipo String, no puedes hacer aparecer dos listas, el único recurso que te queda, si quieres mostrar mas de un dato es concatenando estos. Es decir, hacer que aparezcan los datos como si de un único valor de cadena se tratase.

Ejemplo:

Combo1.AddItem Valor1 & " " & Valor2

Saludos.

13
Visual Basic 6.0 e inferiores / Re: ListView
« en: Lunes 18 de Marzo de 2002, 00:16 »
Hola

Guarda los iconos en un imagelist

itm es un objeto de tipo Item para añadir al ListView

'Asigna el control ImageList al ListView
ListView1.Icons = ImageList1

Set itm = ListView1.ListItems.Add(, , "Texto")

' Establece el Icono 1 del ImageList1
itm.Icon = 1

Saludos.

Páginas: [1]