Codigos Fuente

|


Preguntar

|


Comunicaciones

|


Tutoriales

|


Contactenos

 


  Buscador del Site  

 

 Se Recomienda Resolución de 800x600 pixels


 

3ra PARTE

11.- Determinar la Resolución de la pantalla

Option Explicit
' Como determinar resolución de la
' pantalla con VB4-Win95/NT.
' Dos versiones- con el API y sin...
' Pon tres botones y un textbox encima de
' un form y insertar este codigo.
'
' visual_basic2000@hotmail.com

Private Declare Function GetSystemMetrics Lib "user32" _
    (ByVal nIndex As Long) As Long

Private Sub Command1_Click()
    Dim resolucionX&, resolucionY&
    resolucionX = GetSystemMetrics(0)
    resolucionY = GetSystemMetrics(1)
    Text1.Text = CStr(resolucionX & "x" & resolucionY)
End Sub

Private Sub Command2_Click()
    Dim resolucionX&, resolucionY&
    resolucionX = Screen.Width / Screen.TwipsPerPixelX
    resolucionY = Screen.Height / Screen.TwipsPerPixelY
    Text1.Text = CStr(resolucionX & "x" & resolucionY)
End Sub

Private Sub Command3_Click()
    Text1.Text = ""
End Sub

Private Sub Form_Load()
    Text1.Text = ""
    Command1.Caption = "&Con API"
    Command2.Caption = "&Sin API"
    Command3.Caption = "&Borrar"
    Me.Caption = "Ejemplo para Visual Basic.Com"
End Sub

  12.- Usar tus propias instrucciones en lugar de las de VB

Esto no es realmente un truco, es que o lo adivinas por equivocación o, como en mi caso, lo lees en un libro.
Ya había notado yo cosas raras con algunas variables, pero no me "fijé" en el detalle... en fin, no pretenderás que esté siempre al loro de todo lo que me ocurra...
El tema es que si declaras una función con el mismo nombre que una ya existente, se usará esa función o instrucción en lugar de la que incluye el VB.

Por ejemplo, (para seguir siendo un "copión"), pongo el mismo ejemplo que el libro ese que estoy leyendo ahora.
Se trata de una implementación especial de KILL, pero en esta nueva versión, permite varios archivos como parámetros

Puedes usarla de esta forma:
Kill "archivo1.txt", sUnArchivo$, "archivoX.*"
Kill "UnoSolo.bak"

Function Kill(ParamArray vFiles() As Variant) As Boolean
    Dim v As Variant

    On Error Resume Next
    For Each v In vFiles
	VBA.Kill v
    Next
    Kill = (Err = 0)
End Function

El truco está en anteponer VBA. a la instrucción propia del VB y así se sabe exactamente a que se está refiriendo.

 13.- Descargar una DLL o EXE que esté en memoria (sólo 16 bits)

Esto puede servir para descargar una aplicación o librería dinámica de la memoria de nuestro Windows. La forma es sencilla, sólo hay que crear un módulo BAS y escribir este código en el SUB MAIN, como parámetro debemos pasarle la DLL o EXE que queremos "eliminar" y este programita se encargará del resto...

AVISO: Esto sólo funcionará de forma correcta en Windows 3.xx NO USARLO EN WINDOWS 95.
A mí no me ha funcionado bien en Win95 y deja colgado el Explorer, al menos el que se incluye con el IE 4.0 beta.
El que avisa...

'--------------------------------------------------------------
'Descargar una DLL o EXE que esté en memoria        ( 6/Jul/97)
'
'Basado en un código de Bruce McKinney y que realiza la misma
'tarea que WPS.exe para descargar módulos y ejecutables.
'(se supone)
'--------------------------------------------------------------
Option Explicit

Declare Function GetModuleHandle Lib "Kernel" (ByVal lpModuleName As String) As Integer
Declare Function GetModuleUsage Lib "Kernel" (ByVal hModule As Integer) As Integer
Declare Sub FreeModule Lib "Kernel" (ByVal hModule As Integer)

Public Sub Main()
    Dim hModule As Integer
    
    'El módulo a librerar se pasa en la línea de comandos
    hModule = GetModuleHandle(Command$)
    If hModule = 0 Then Exit Sub
    'Libera todas copias de este módulo
    Do While GetModuleUsage(hModule) > 0
        Call FreeModule(hModule)
    Loop
End Sub

14.- No permitir cambiar el tamaño de una ventana redimensionable

Seguramente te preguntarás ¿que utilidad puede tener esto? Si a la ventana se le puede cambiar el tamaño, ¿por qué no permitir que se cambie?
La respuesta, para mí, es sencilla, pero la dejo para que pienses un poco cual sería el motivo...

Bueno, ahí va: en algunas ocasiones me gusta que los bordes de la ventana se vean de forma "normal", es decir como si se pudiese cambiar el tamaño, pero no me gusta que lo puedan cambiar, así que lo que he hecho en estas ocasiones es simplemente conservar el tamaño inicial de la ventana (el que tiene al cargarse) y cuando el usuario decide cambiarle el tamaño, no permitirselo y volver al que tenía inicialemente.

Este "truco" lo mandé a la lista de VB-ESP, pero tenía un inconveniente: que al cambiar el tamaño por el lado izquierdo o por la parte superior, se movia el form, esto sigue igual, si alguien tiene la forma de conseguirlo, sin que sea dejando el form en la posición inicial, que eso es fácil, sino que recuerde la última posición si sólo se ha movido...

Aquí tienes todo el código necesario:

'--------------------------------------------------------------
'Prueba para no cambiar el tamaño de una ventana con
'bordes dimensionables                              
'--------------------------------------------------------------
Option Explicit

'Tamaño inicial del Form
Dim iH As Integer
Dim iW As Integer


Private Sub Form_Load()
    'Guardar el tamaño inicial
    iH = Height
    iW = Width
End Sub


Private Sub Form_Resize()
    'Sólo comprobar si el estado es Normal
    If WindowState = vbNormal Then
        'Si se cambia la altura
        If Height <> iH Then
            Height = iH
        End If
        'Si se cambia el ancho
        If Width <> iW Then
            Width = iW
        End If
    End If
End Sub
 
 

©1998-2001 FMC Webs® Todos los derechos Reservados. Ferraro Mauro - San Nicolás - Argentina

El Codigo del Mes

Aqui le mostraremos el Codigo Fuente del Mes, Votalo Ya!!!

Preguntar

Dudas

Trucos

API de windows

Tutoriales

Trucos

Api de Windows

Bajate el manual de VB

Contactenos

Enviar Codigos Fuente

Links y Banners

Publicite en nuestro Site

Pone Tu link Gratis!!!

Crea tu Web

Redirecciona tu Pagina Gratis!!!

Votanos en La web del Programador

Sugerencias