|
|
|
|
|
|
| |
| |
| |
| |
|
Se Recomienda Resolución de 800x600 pixels |
|
3ra PARTE 1.- ¿Recursos?: Si, Gracias! Pues el truco con el que empiezo este nuevo
archivo es para simular un Frame usando Shape. 2.- Comprobar cómo se cierra una aplicación Al cerrar un form, podemos saber si es nuestro código
el que cierra la aplicación o bien se cierra por otra causa.
QueryUnload Method
Constant Value Description
vbFormCode 1 Unload method invoked from code.
vbAppWindows 2 Current Windows session ending.
vbFormMDIForm 4 MDI child form is closing because the MDI form is closing.
vbFormControlMenu 0 User has chosen Close command from the Control-menu box on a form.
vbAppTaskManager 3 Windows Task Manager is closing the application.
'Ejemplo para usarlas:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
'Sólo cerrar si es un mensaje de windows
Select Case UnloadMode
Case vbFormCode, vbAppTaskManager, vbAppWindows
'ok, cerrar
Case Else
MsgBox "No se permite cerrar la aplicación.", vbInformation, "Mensajes"
Cancel = True
WindowState = vbMinimized
End Select
End Sub
3.- Averiguar el signo decimal (coma o punto) Esto lo he usado para el programa de la
calculadora y lo copié de un ejemplo que venía con el Visual Basic para MS-DOS ' Determine whether "." or "," should be used as
' decimal separator based on value returned by
' FORMAT$ (country specific).
temp$ = Format$(1.5, "#.#")
If InStr(temp$, ",") Then
Decimal = ","
Else
Decimal = "."
End If
4.- Funciones para leer/escribir en archivos INI (16 y 32 bits) Estas funciones simulan las que incorpora VB4:
GetSetting y SaveSetting, pero siempre trabajan con archivos INI, no lo hacen
con el registro, como ocurre si el VB4 es 32 bits. '--------------------------------------------------
' Profile.bas (24/Feb/97)
' Autor: Guillermo Som Cerezo, 1997
' Fecha inicio: 24/Feb/97 04:05
'
' Módulo genérico para las llamadas al API
' usando xxxPrivateProfileString
'--------------------------------------------------
Option Explicit
#If Win32 Then
'Declaraciones para 32 bits
Private Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpString As Any, ByVal lpFileName As String) As Long
#Else
'Declaraciones para 16 bits
Private Declare Function GetPrivateProfileString Lib "Kernel" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpDefault As String, ByVal lpReturnedString As String, _
ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Private Declare Function WritePrivateProfileString Lib "Kernel" _
(ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
ByVal lpString As Any, ByVal lplFileName As String) As Integer
#End If
'----------------------------------------------------------------------------
'Función equivalente a GetSetting de VB4.
'GetSetting En VB4/32bits usa el registro.
' En VB4/16bits usa un archivo de texto.
'Pero al usar las llamadas del API, siempre se escriben en archivos de texto.
'----------------------------------------------------------------------------
Public Function LeerIni(lpFileName As String, lpAppName As String, lpKeyName As String, Optional vDefault) As String
'Los parámetros son:
'lpFileName: La Aplicación (fichero INI)
'lpAppName: La sección que suele estar entrre corchetes
'lpKeyName: Clave
'vDefault: Valor opcional que devolverá
' si no se encuentra la clave.
'
Dim lpString As String
Dim LTmp As Long
Dim sRetVal As String
'Si no se especifica el valor por defecto,
'asignar incialmente una cadena vacía
If IsMissing(vDefault) Then
lpString = ""
Else
lpString = vDefault
End If
sRetVal = String$(255, 0)
LTmp = GetPrivateProfileString(lpAppName, lpKeyName, lpString, sRetVal, Len(sRetVal), lpFileName)
If LTmp = 0 Then
LeerIni = lpString
Else
LeerIni = Left(sRetVal, LTmp)
End If
End Function
'----------------------------------------------------------------------------
'Procedimiento equivalente a SaveSetting de VB4.
'SaveSetting En VB4/32bits usa el registro.
' En VB4/16bits usa un archivo de texto.
'Pero al usar las llamadas del API, siempre se escriben en archivos de texto.
'----------------------------------------------------------------------------
Sub GuardarIni(lpFileName As String, lpAppName As String, lpKeyName As String, lpString As String)
'Guarda los datos de configuración
'Los parámetros son los mismos que en LeerIni
'Siendo lpString el valor a guardar
'
Dim LTmp As Long
LTmp = WritePrivateProfileString(lpAppName, lpKeyName, lpString, lpFileName)
End Sub
5.- Desglosar una ruta o nombre de archivo Una función para desglosar en el Path y el
Nombre del archivo, la ruta que recibe como parámetro. Public Sub SplitPath(ByVal sTodo As String, sPath As String, Optional vNombre, Optional vExt)
'----------------------------------------------------------------
'Divide el nombre recibido en la ruta, nombre y extensión
'Esta rutina aceptará los siguientes parámetros:
'sTodo Valor de entrada con la ruta completa
'Devolverá la información en:
'sPath Ruta completa, incluida la unidad
'vNombre Nombre del archivo incluida la extensión
'vExt Extensión del archivo
'
'Los parámetros opcionales sólo se usarán si se han especificado
'----------------------------------------------------------------
Dim bNombre As Boolean 'Flag para saber si hay que devolver el nombre
Dim i As Integer
If Not IsMissing(vNombre) Then
bNombre = True
vNombre = sTodo
End If
If Not IsMissing(vExt) Then
vExt = ""
i = InStr(sTodo, ".")
If i Then
vExt = Mid$(sTodo, i + 1)
End If
End If
sPath = ""
'Asignar el path
For i = Len(sTodo) To 1 Step -1
If Mid$(sTodo, i, 1) = "\" Then
sPath = Left$(sTodo, i - 1)
'Si hay que devolver el nombre
If bNombre Then
vNombre = Mid$(sTodo, i + 1)
End If
Exit For
End If
Next
End Sub
6.- Como llamar al Microsoft Internet Mail y News desde un programa VB Pon dos botones en un Form e inserta este código:
Private Sub Command1_Click()
Dim ValDev&, Programa$
Programa = "EXPLORER.EXE /root,c:\windows\Internet Mail." & _
"{89292102-4755-11cf-9DC2-00AA006C2B84}"
ValDev = Shell(Programa, vbNormalFocus)
End Sub
Private Sub Command2_Click()
Dim ValDev&, Programa$
Programa = "EXPLORER.EXE /root,c:\windows\Internet News." & _
"{89292103-4755-11cf-9DC2-00AA006C2B84}"
ValDev = Shell(Programa, vbNormalFocus)
End Sub
Si usas el Microsoft Internet News/Mail,
se arrancan cuando pulsas el botón.
Es que no hay un EXE para ellos- son hijos del Explorer.
7.- Ejecutar cualquier archivo, incluso accesos directos (LNK) Esta pregunta me había surgido antes y no
encontraba la "puñetera" respuesta. Probé con el Explorer.exe, al
estilo del truco anterior, pero nada... ¿Cómo se hace? Dim ret As Long
ret = Shell("start " & sFile)
'Si Quieres que no se muestre la ventana:
ret = Shell("start " & sFile,
sFile será "lo que queramos" ejecutar. CUALQUIER COSA! 8.- Un Huevo de Pascua (Easter Egg), el del VB4 Este "truco" me lo ha mandado el señor
Joe LeVasseur y se trata del Easter Egg del Visual Basic 4, se trata de lo
siguiente: 9.- Ejemplo de cómo restar fechas y horas Dos ejemplos de cómo restar fechas y horas. Crea un form con los siguientes controles, dejale
los nombre por defecto. 'Ejemplo de prueba para restar fechas y horas (26/Mar/97)
'(c) Guillermo Som, 1997
Option Explicit
Private Sub Command1_Click()
Dim t0 As Variant, t1 As Variant
'Text1 Tendrá una fecha anterior
'Text2 tendrá la nueva fecha
t0 = DateValue(Text1)
t1 = DateValue(Text2)
Label1 = t1 - t0
End Sub
Private Sub Command2_Click()
Dim t0 As Variant, t1 As Variant
'Text3 Tendrá una hora anterior
Text4 = Format(Now, "hh:mm:ss")
t0 = Format(Text3, "hh:mm:ss")
t1 = Format(Text4, "hh:mm:ss")
Label2 = Format(TimeValue(t1) - TimeValue(t0), "hh:mm:ss")
End Sub
Private Sub Form_Load()
'Para probar la diferencia de fechas
Text1 = DateValue(Now)
Text2 = DateValue(Now + 10)
'
'Para probar la diferencia de horas
Text3 = Format(Now, "hh:mm:ss")
Text4 = Format(Now, "hh:mm:ss")
Command1_Click
Command2_Click
End Sub
10.- Leer la línea de comandos y quitarle los 'posibles' caracteres de comillas que tenga. Algunas veces cuando recibimos un archivo de la línea
de comandos, pueden tener caracteres de comillas, sobre todo si trabajamos con
VB4 de 32 bits. sFile = LineaComandos() Private Function LineaComandos() As String
Dim sTmp As String
Dim i As Integer
'Comprobar si hay algún archivo en la línea de comandos
sTmp = Trim$(Command$)
If Len(sTmp) Then
'Si tiene los caracteres de comillas, quitarselos
i = InStr(sTmp, Chr$(34))
If i Then
sTmp = Left$(sTmp, i - 1) & Mid$(sTmp, i + 1)
i = InStr(sTmp, Chr$(34))
If i Then
sTmp = Left$(sTmp, i - 1) & Mid$(sTmp, i + 1)
End If
End If
End If
LineaComandos = sTmp
End Function
©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 Tutoriales Contactenos Redirecciona tu Pagina Gratis!!! Votanos en La web del Programador
|