|
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 - javierbalk
126
« en: Jueves 31 de Octubre de 2002, 02:05 »
Hola:
MsgBox Screen.ActiveForm.Name
Eso da el nombre del formulario activo.
Pero no significa que no haya otros formularios cargados.
Si queres saber cuales son todos los formularios cargados:
Dim F as Form
For each F in Forms MsgBox F.Name Next
Saludos,
Javier
127
« en: Jueves 31 de Octubre de 2002, 02:01 »
Hola:
Cada verificación sería diferente. Yo tengo un código que verifica si está Excel, sin duda modificándolo un poco se puede ver si están los otros componentes de Office, los otros programas hay que verlos de otra forma.
Coloca un CommandButton en un form y copia esto:
Private Sub Command1_Click() MsgBox IsAppPresent("Excel.SheetCurVer", "") End Sub
Ahora Abre un Module y copia esto:
Option Explicit
Global Const gstrSEP_DIR$ = "" ' Carácter separador de directorios Public Const gstrSEP_REGKEY$ = "" ' Carácter de separación de claves del Registro. Global Const gstrSEP_DRIVE$ = ":" ' Carácter de separación de unidad, p.e., C: Global Const gstrSEP_DIRALT$ = "/" ' Carácter alternativo de separación de directorio Global Const gstrSEP_EXT$ = "." ' Carácter de separación de extensión de archivo Public Const gstrSEP_PROGID = "." Public Const gstrSEP_FILE$ = "|" ' Usa el carácter para delimitar listas de nombres de archivo ya que no es un carácter válido en un nombre de archivo. Public Const gstrSEP_LIST = "|"
Global Const gstrCOLON$ = ":"
Private Declare Function RegOpenKey Lib "advapi32" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, lpReserved As Long, lptype As Long, lpData As Any, lpcbData As Long) As Long Private Declare Function RegCloseKey& Lib "advapi32" (ByVal hKey&)
Private Const REG_SZ = 1 Private Const REG_EXPAND_SZ = 2 Private Const ERROR_SUCCESS = 0 Public Const HKEY_CLASSES_ROOT = &H80000000
Public Function IsAppPresent(strSubKey$, strValueName$) As Boolean IsAppPresent = CBool(Len(GetRegString(HKEY_CLASSES_ROOT, strSubKey, strValueName))) End Function
Public Function GetRegString(hKey As Long, strSubKey As String, strValueName As String) As String Dim strSetting As String Dim lngDataLen As Long Dim lngRes As Long If RegOpenKey(hKey, strSubKey, lngRes) = ERROR_SUCCESS Then strSetting = Space(255) lngDataLen = Len(strSetting) If RegQueryValueEx(lngRes, strValueName, ByVal 0, REG_EXPAND_SZ, ByVal strSetting, lngDataLen) = ERROR_SUCCESS Then If lngDataLen > 1 Then GetRegString = Left(strSetting, lngDataLen - 1) End If End If If RegCloseKey(lngRes) <> ERROR_SUCCESS Then 'MsgBox "RegCloseKey Failed: " & strSubKey, vbCritical End If End If End Function
Saludos,
Javier
128
« en: Martes 29 de Octubre de 2002, 01:25 »
Si buscas en el Cd de Visual Basic vas a encontrar un archivo que es Systray.ocx, ese componente te sirve para poner tu programa al lado del reloj, o mejor dicho en la Bandeja de sistema (System tray en inglés) También está el código fuente por si lo quieres modificar.
En cuanto a que se minimize al presionar la X hace lo siguiente: Para el evento Form_QueryUnload escribí:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) If UnloadMode = 0 Then Cancel = True WindowState = vbMinimized ' o bien SysTray1.OnTray = True End If End Sub
Después vas a tener que hacer una forma para que se vuelva a restaurar y otra para poder cerrarlo definitivamente. Saludos,
Javier
129
« en: Domingo 27 de Octubre de 2002, 21:46 »
Primero que todo: ¿Qué es lo que querés hacer?
Javier
130
« en: Domingo 27 de Octubre de 2002, 09:05 »
Hola: La verdad que lo de transparente resulta un tanto confuso, porque yo pensaba que si querés que sea transparente, entonces querés que no se vea, y para eso no lo pongas. Después leo un mensaje de RS La verdad que parece un tanto poético. Traslúcido sería otra cosa, eso si se puede. He visto ejemplos de eso pero con un form, con los controles seguramente se puede hacer también (en lugar de usar el Hwnd del form usar el Hwnd del control) Un ejemplo con un formulario traslúcido está en http://www.pscode.com/vb/scripts/ShowCo ... 8&lngWId=1Ahora, por otro lado, si lo que se quiere es hacer transparente una parte del CommandButton también se puede, esto es con llamadas a la API. No tengo el código completo en mente, pero las API son: CreateRoundRectRgn (o CreateRectRgn, según la forma que se desee) y SetWindowRgn Saludos, Javier
131
« en: Sábado 26 de Octubre de 2002, 23:42 »
¿A que te refieres con que no se descarga todo el programa, porque en el entorno de desarrollo ves que sigue ejecutandose?
Si es así se debe a que queda algún formulario cargado, fijate que debes usar Unload Nombre_Del_Formulario y no Nombre_Del_Formulario.Hide para ocultar los mismos.
En tu programa, asçi como está ahora, verás que si no presentas ningun otro formulario que el principal y luego lo cierras, ahi se cierra bien. Bueno, eso es porque no hay ningún formulario cargado.
En cualquier momento que accedas a una propiedad o control contenido en un form, por ejemplo Form2.BackColor = vbRed, o Form2.Label1.Caption = "Prueba", el formulario se carga en memoria y luego debes descargarlo con la orden Unload.
Saludos,
Javier
132
« en: Viernes 25 de Octubre de 2002, 07:35 »
Yo te diría que si son deberes los trates de hacer vos, que es la manera de aprender. Si lo intentás, haces algo y no te funciona, entonces sugeriria que junto con el mensaje publiques el código de lo que hiciste así te podemos ayudar a arreglar lo que no funcione. Saludos,
Javier
133
« en: Viernes 25 de Octubre de 2002, 07:30 »
Sugerencia: sería muy útil tener la opción de ser notificado por email cuando alguien responde a un mensaje que uno puso, ya que a veces alguien puede ver la respuesta que uno escribió a una pregunta hecha y a su vez preguntar algo más y uno no se entera a no ser que haya vuelto a ver el mensaje. Saludos y gracias,
Javier
134
« en: Viernes 25 de Octubre de 2002, 07:27 »
No se cuales serian los "pasos convencionales", pero para crear una barra de herramientas tenes que ir al menu proyecto, componentes y seleccionar Microsoft Windows Common Controls. Luego añadir un control ToolBar y un ImageList, agregarle los iconos al ImageList, relacionar el control ToolBar con el ImageList, agregar los botones al Toolbar.
Ahora si a esto es lo que llamas los "pasos convencionales", todo esto lógicamente se puede hacer también a través de código, ¿en que parte te trabas?
Javier
135
« en: Viernes 25 de Octubre de 2002, 07:20 »
Yo te diría que lo más sencillo es usar un form para eso y entonces le pones lo que vos quieras.
Javier
136
« en: Sábado 19 de Octubre de 2002, 02:13 »
Me parece que tendrias que encriptar los textos y luego desencriptarlos antes de mostrarlos.
Javier
137
« en: Viernes 18 de Octubre de 2002, 10:53 »
Hola,
Bueno, para eso podes poner un PictureBox conteniendo los controles e ir cambiando el Top del PictureBox en el evento Scroll (y/o Change) del VScroll.
También podrías poner el PictureBox dentro de un Frame.
Vas a tener que calcular los valores correctos de las propiedades del VScroll, Min, Max, SmallChange, LargeChange.
Saludos y suerte,
Javier
138
« en: Jueves 17 de Octubre de 2002, 17:28 »
Dim Cancelar as Boolean
Cancelar = False Do While...
'hacer lo que haya que hacer
Doevents if Cancelar then Exit Do End If Loop
Private Sub cmdCancelar_Click Cancelar = True End Sub
'cmdCancelar es el CommandButton
'¿Se entiende?
Javier
139
« en: Miércoles 16 de Octubre de 2002, 23:57 »
También puedes usar las funciones del registro de configuraciones, GetSetting y SaveSetting. Pero debes tener en cuenta que un usuario avanzado podría descubrir esto y modificarlo a mano. Saludos y suerte,
Javier
140
« en: Miércoles 16 de Octubre de 2002, 23:50 »
Bueno, serán hábiles y listos, pero parece que no saben mucha ortografía... "aviles" (no te enojes)
141
« en: Miércoles 16 de Octubre de 2002, 23:47 »
a simple vista parece que debería funcionar ¿en que linea te da el error? Si pones como archivo adjunto la base de datos lo pruebo y veo
142
« en: Martes 8 de Octubre de 2002, 00:50 »
Dim Inicio Dim Fin Inicio = Timer HacerRutina Fin = Timer MsgBox Fin - Inicio
Si el cálculo de los decimales debe ser sumamente exacto habria que usar algun otro codigo, ya que este toma intervalos de tiempo de la PC (creo que son cada 16 milisegundos)
|
|
|