• Domingo 22 de Diciembre de 2024, 08:51

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 - Brroz

Páginas: 1 ... 3 4 [5] 6 7 ... 43
101
Visual Basic 6.0 e inferiores / Re: Validar Text Box Con Propiedad Multiline
« en: Miércoles 2 de Febrero de 2005, 09:15 »
Ya, pues que sepas que te sobra el bucle y repites algo ya dicho:
Citar
También podrías optar por validar el texto mediante el evento en un lostfocus o en un validate (mejor). Te llegaría con una línea así:
Código: Text
  1.  
  2.   Text1.Text = LTrim(Replace(Text1.Text, Chr(32) & Chr(32), Chr(32))
  3.  
  4.  

 De todas formas con esto obligas al desaparecido Cmps360 a programar una validación. El mismo...

Abur.

102
Visual Basic 6.0 e inferiores / Re: Determinar Archivos K Contendra Instalador
« en: Martes 1 de Febrero de 2005, 17:03 »
Hola Desarrollo.

Aunque no te guste para crear un paquete de instalación, puedes usar el asistente de vb para obtener un archivo de dependencias (.dep). Ahí podrás encontrar información sobre todas las dependencias de tu proyecto.

Por otro lado, conocer qué archivos pueden hacer falta puede ser bastante intuítivo y en la práctica resultará algo así:

1- MSVBVM60.DLL
Runtime de vb 6.0. Aunque no es una dependencia de un proyecto, este archivo es imprescindible para poder ejecutar programas vb 6.0. Posiblemente esté instalado en la máquina destino, pero ante la duda...

2- Consulta las referencias de tu proyecto. Deberás incluir todos los componentes seleccionados excepto 'Visual Basic for applications', 'Visual Basic Runtime objects...' y 'Visual Basic Objects & procedures' y si fuese el caso 'Ole automation'.
Para el resto, fíjate en la ubicación que se indica para el archivo cuando seleccionas la referencia.

3- Como con las referencias, pero ahora con los componentes. Tres cuartos de lo mismo. Piensa también que probablemente los controles más comunes ya se encuentren instalados en la máquina destino.

4- Otros archivos necesarios. Bases de datos, archivos ini, archivos reg, fonts, cualquier archivo que use tu aplicación y que no crees en tiempo de ejecución...

Podría ocurrir que en tu programa uses una referencia a un objeto en tiempo de ejecución (p.e. CreateObject("Lib.Clase") ). Este tipo de dependencias, deben ser recordadas para incluir el correspondiente archivo en caso necesario.

También es posible que alguno de los componentes que uses cuenten a su vez con otras dependencias que tal vez tengas que incluir. Yo aquí no sabría qué hacer, aunque también te digo que nunca se me ha presentado ningún problema con esto.

Esto para que te hagas una idea. Espero que te sirva. Chao.

103
Visual Basic 6.0 e inferiores / Re: Usb
« en: Martes 1 de Febrero de 2005, 11:35 »
Hola riciar.

Puedes probar abriendo en binario con OPEN el puerto como un archivo más. Para enviar datos escribe en el archivo con PUT.

Código: Text
  1.  
  2. Dim iCanal As Integer, byt1() As Byte
  3. iCanal = FreeFile
  4. Open "USB1" For Binary As iCanal
  5. .
  6. .
  7. .
  8. Put #iCanal, ,byt1
  9. .
  10. .
  11. .
  12. Close #iCanal
  13.  
  14.  

Suerte.

104
Visual Basic 6.0 e inferiores / Re: Red En Anillo Por El Rs-232
« en: Martes 1 de Febrero de 2005, 11:26 »
¿Y tus profesores no te orientan?, ¿los conoces?

Citar
pero se que puedo asimiliar otros códigos con rapidez
Ya, ya... ya percibo a qué te refieres con asimilar.

Que tengas mucha suerte amigüit@.

105
Visual Basic 6.0 e inferiores / Re: Validar Text Box Con Propiedad Multiline
« en: Martes 1 de Febrero de 2005, 11:15 »
¿Y los espacios intermedios?

106
Visual Basic 6.0 e inferiores / Re: Error De Sintaxis
« en: Martes 1 de Febrero de 2005, 11:11 »
Hola.

Te falta un espacio antes de 'VALUES'

Chao.

107
Visual Basic 6.0 e inferiores / Re: Imprimir Desde Una Presentación Activa
« en: Sábado 29 de Enero de 2005, 08:47 »
Hola agfed.

No estoy seguro pues nunca lo he probado en el caso concreto, pero supongo que el método PrintOut admitirá como uno de sus parámetros (como en otras ocasiones) el número de página/s que quieres imprimir. Especifícalo.

A ver si así. Chao.

108
Visual Basic 6.0 e inferiores / Re: Validar Text Box Con Propiedad Multiline
« en: Sábado 29 de Enero de 2005, 08:42 »
Hola.

Tu código no funciona (tampoco en un textbox sin multiline) en el caso de que el usuario escriba en el medio de un texto existente: es decir, la cosa va bien si escribes en el textbox todo seguido, pero si te posicionas en el medio del texto ya existente y escribes ahí, el código ya no funciona.

La cosa podría quedar asín:
Código: Text
  1.  
  2. Private Sub Text1_KeyPress(Keyascii As Integer)
  3.     If Keyascii = 32 Then
  4.         If Text1.SelStart = 0 Then
  5.             Keyascii = 0
  6.         ElseIf Mid(Text1.Text, Text1.SelStart, 1) = " " Then
  7.             Keyascii = 0
  8.         ElseIf Text1.SelStart + 1 <= Len(Text1.Text) Then
  9.             If Mid(Text1.Text, Text1.SelStart + 1, 1) = " " Then
  10.                 Keyascii = 0
  11.             End If
  12.         End If
  13.     End If
  14. End Sub
  15.  
  16.  

También podrías optar por validar el texto mediante el evento en un lostfocus o en un validate (mejor). Te llegaría con una línea así:
Código: Text
  1.  
  2.    Text1.Text = LTrim(Replace(Text1.Text, Chr(32) & Chr(32), Chr(32))
  3.  
  4.  

No se contempla el caso de evitar un espacio al final del texto ya que no dices nada sobre ello. De todas formas si lo necesitas no te debería costar mucho hacerlo...

Chao.

109
Visual Basic 6.0 e inferiores / Re: Mdiform
« en: Jueves 27 de Enero de 2005, 09:17 »
Hola Desarrollo.

Para un caso así, crea un bitmap con la imagen que desees como fondo. Asigna este bitmap a la propiedad Picture del MDIForm.

Chao.

110
Visual Basic 6.0 e inferiores / Re: Datagrid1 Llenarlo De Datos Via Odbc
« en: Jueves 27 de Enero de 2005, 09:15 »
Hola SpIdErFuCk.

El error lo obtienes por intentar asignar a la propiedad DataSource una cadena en lugar de un objeto origen de datos. Asigna a DataSource el recordset. También te puede interesar llamar a continuación al método Rebind del DataGrid.

Código: Text
  1.  
  2. Set DataGrid1.DataSource = rs
  3. DataGrid1.Rebind
  4.  
  5.  

A ver si ahora... Abur.

111
Visual Basic 6.0 e inferiores / Re: Problema Con Contador De Tiempo
« en: Martes 25 de Enero de 2005, 15:02 »
Hola zeekel.

1- Yo hubiese pensado en hacer un proceso independiente exclusivamente para controlar el tiempo de las conexiones. Eliminaría toda parte interactiva de este programa y lo ejecutaría como un servicio. Para comunicar los programas podrías pensar en sockets, activex, bases de datos, punteros...

También podrías llamar este programa desde el principal ejecutándolo en una nueva hebra del procesador.
Hombre, ahora que acabo de escribir esto, se me acaba de ocurrir una forma simpática para controlar el tiempo de cada conexión:

a) Crea un programa que se finalice el solito después de un tiempo que le hayas pasado como parámetro.

B) Cuando tengas una conexión nueva y desees que comience a contar el tiempo para ella, abre una nueva hebra (OpenProcess) llamando al programita anterior pasando como parámetro el tiempo que desees que se esté ejecutando. Asocia (en una matriz por ejemplo) el Id. de proceso del nuevo thread y un Id para la conexión.

c) Para comprobar si se ha acabado el tiempo de determinada conexión, comprueba si el Id. de proceso asociado está activo. O mejor aún, si todo esto lo encapsulas en una clase, puedes usar un bucle que controle cuando se finaliza el proceso que cuenta el tiempo. En cuanto el flujo salga del bucle, se ha acabado el tiempo.

2- Sobre como hacer que una aplicación esté oculta en el administrador de tareas:
http://foros.solocodigo.com/index.php?showtopic=7717

Espero que esto te ayude. Abur.

112
Visual Basic 6.0 e inferiores / Re: Vb6 And Sybase
« en: Lunes 24 de Enero de 2005, 17:44 »
Hola dark_one.

Supongo que el fallo tendrá que ver con el parámetro database de la cadena de conexión que utilizas:
Citar
database=;
Èspecifica la base de datos después del signo = en la cadena de conexión u omite el parámetro si ya está especificado en el origen de datos.

Si quieres obtener el texto para una cadena de conexión oledb yo suelo hacer lo siguiente:
1 - Creo un archivo con extensión .UDL
2 - Entro a las propiedades del archivo y elijo driver origen de datos y demás.
3 - Abro el archivo como texto y de ahí saco la cadena de conexión.

A ver si con esto solucionas. Suerte.

Chao.

113
Hola alfredopalafox.

Si buscas por este mismo foro encontrarás abundantes ejemplos de manejos básicos de hojas de cálculo excel desde vb. Estúdialos y aplica la forma de obtener una referencia a un libro excel con sus hojas. En cuanto consigas una referencia a un objeto de tipo 'Sheets' puedes utilizar su método PrintOut para imprimir las hojas seleccionadas. Usa los parámetros del método como más te convenga.

suerte.

114
Visual Basic 6.0 e inferiores / Re: Algunas Reguntas
« en: Lunes 24 de Enero de 2005, 14:47 »
Hola jodijo5.

Puedes escribir un texto vertical en un form de la siguiente forma:

Código: Text
  1.  
  2. Private Sub TextoVertical(ByVal Texto As String, Optional ByVal X As Single, Optional Y As Single)
  3.     Me.CurrentY = Y
  4.     Dim i1 As Integer
  5.     i1 = 1
  6.     Do Until i1 > Len(Texto)
  7.         Me.CurrentX = X
  8.         Me.Print Mid(Texto, i1, 1)
  9.         i1 = i1 + 1
  10.     Loop
  11. End Sub
  12.  
  13.  

Por supuesto que font, color y demás estarán en función de las respectivas propiedades del form.

Importante: establece la propiedad del form Autoredraw = True. Si no haces esto, deberías redibujar todo lo hecho sobre el form con métodos gráficos en el evento Paint.

Sobre el segundo punto... Si aún estás con ello, tal vez podrías especificar a qué te refieres con rotar un objeto en un control. ¿Te refieres a una imagen o a otra cosa?

El tercero, Radical ya te lo ha explicado.

Chao.

115
Visual Basic 6.0 e inferiores / Re: Conexion Dsn Please Con Dao...urgente
« en: Lunes 24 de Enero de 2005, 14:34 »
Hola Spow.

Exactamente, ¿qué es lo que te falla de este código?, porque creo que debería funcionar sin problemas.

Por otro lado, tal vez pudieras explicar por qué dices necesitar del manejo de una conexión por odbc...

Chao.

116
Visual Basic 6.0 e inferiores / Re: Aclarenme Porfa
« en: Miércoles 19 de Enero de 2005, 15:35 »
Hola sircuit.

Este código que pones ejecuta una llamada a RUNDLL32.EXE pasándole como parámetros 'url.dll,FileProtocolHandler C:\UnaRuta'. En la práctica esto abrirá una ventana mostrando el contenido de C:\UnaRuta. Si en lugar de 'C:\UnaRuta' pusieras 'C:\UnaRuta\UnArchivo.exe', intentaría ejecutar 'unArchivo.exe'.

Para llamar a la función y que te muestre el contenido de una ruta que tu escribas en un textbox, o el nombre de un programa, simplemente llama a la función pasándole como parámetro el texto del textbox.

Código: Text
  1.  
  2. ExecuteFile Text1.Text
  3.  
  4.  

¿Que dónde tienes que poner esto?... pues en el evento Click de un commandButton, por ejemplo.

Chao.

117
Visual Basic 6.0 e inferiores / Re: Controlar El Grosor De Las Líneas Al Imprimir
« en: Miércoles 19 de Enero de 2005, 15:19 »
Hola ebolo.

Realmente, creo que no debería afectar la resolución o el tamaño de la pantalla a la legibilidad del código... pienso que el ancho de un espacio en blanco o de una línea seguiría siendo proporcional. En todo caso, cuando detectes una resolución inadecuada podrías redimensionar el control y escalar el ancho de la línea usando 2 pixels en vez de 1.

Chao.

118
Visual Basic 6.0 e inferiores / Re: Agregar Aplicacion Al Inicio (msconfig)
« en: Miércoles 19 de Enero de 2005, 14:52 »
Hola Nogard.

Con w9x (y supongo que con nt y xp lo mismo, pero no lo he probado) puedes agregar el correspondiente valor en una de estas claves del registro:

Para ejecutar siempre al inicio:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

Para ejecutar una sola vez en el siguiente inicio:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce

Para ejecutar como un servicio:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices

Para ejecutar como servicio una sola vez:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce

Para agregar el correspondiente valor puedes usar algo así:

Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Const HKEY_LOCAL_MACHINE = &H80000002
  5.  
  6. Private Const ERROR_SUCCESS = 0&
  7.  
  8. Private Const KEY_QUERY_VALUE = &H1
  9. Private Const KEY_SET_VALUE = &H2
  10. Private Const KEY_CREATE_SUB_KEY = &H4
  11. Private Const KEY_ENUMERATE_SUB_KEYS = &H8
  12. Private Const KEY_NOTIFY = &H10
  13. Private Const KEY_CREATE_LINK = &H20
  14. Private Const SYNCHRONIZE = &H100000
  15. Private Const STANDARD_RIGHTS_ALL = &H1F0000
  16. Private Const KEY_ALL_ACCESS = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
  17.  
  18. Private Type SECURITY_ATTRIBUTES
  19.     nLength As Long
  20.     lpSecurityDescriptor As Long
  21.     bInheritHandle As Long
  22. End Type
  23.  
  24. Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
  25.  
  26. Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
  27.  
  28. Private Declare Function RegSetValueEx Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
  29.  
  30. Public Function EjecutarAlInicio(Byval Descripcion as string, Byval CmdLine As string) As Boolean
  31.  
  32.     Dim lhKey1 As Long, lhKey2 As Long, lRc As Long
  33.  
  34.     lRc = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software", 0&, KEY_QUERY_VALUE, lhKey1)
  35.     If lRc <> ERROR_SUCCESS Then Exit Function
  36.    
  37.     lRc = RegOpenKeyEx(lhKey1, "Microsoft", 0&, KEY_QUERY_VALUE, lhKey2)
  38.     RegCloseKey lhKey1
  39.     If lRc <> ERROR_SUCCESS Then Exit function
  40.    
  41.     lRc = RegOpenKeyEx(lhKey2, "Windows", 0&, KEY_QUERY_VALUE, lhKey1)
  42.     RegCloseKey lhKey2
  43.     If lRc <> ERROR_SUCCESS Then Exit function
  44.    
  45.     lRc = RegOpenKeyEx(lhKey1, "CurrentVersion", 0&, KEY_QUERY_VALUE, lhKey2)
  46.     RegCloseKey lhKey1
  47.     If lRc <> ERROR_SUCCESS Then Exit Function
  48.    
  49.     lRc = RegOpenKeyEx(lhKey2, "Run", 0&, KEY_ALL_ACCESS, lhKey1)
  50.     RegCloseKey lhKey2
  51.     If lRc <> ERROR_SUCCESS Then Exit Function
  52.  
  53.     CmdLine = CmdLine & Chr(0)
  54.     lRc = RegSetValueEx(lhKey1, Descripcion, 0&, 1&, ByVal CmdLine, Len(CmdLine))
  55.     EjecutarAlInicio = (lRc = ERROR_SUCCESS)
  56.    
  57. End Sub
  58.  
  59.  

Espero que sirva.

Abur.

119
Visual Basic 6.0 e inferiores / Re: Update & Sql Server 2000
« en: Miércoles 19 de Enero de 2005, 14:36 »
Hola.

Puedes recuperar el nuevo número con una función de este estilo:

Código: Text
  1.  
  2. Public Funcion NuevaClave(ByRef ConexionValida As ADODB.Connection, Byval Año as Integer) As Long
  3.  
  4.   Dim rs1 As ADODB.Recordset
  5.   Set rs1 = ADODB.Recordset
  6.   rs1.Open "SELECT MAX(CampoClave) FROM TablaEnCuestion " _
  7.   " WHERE CampoAño=" & Año, ConexionValida
  8.   NuevaClave = IIf(Not IsNull(rs1.Fields(0).Value), rs1.Fields(0).Value + 1, 1)
  9.   Set rs1 = Nothing
  10.  
  11. End Function
  12.  
  13.  

Chau.

120
Visual Basic 6.0 e inferiores / Re: Mcisendcommand
« en: Martes 18 de Enero de 2005, 15:36 »
A ver quién tiene valor de tragarse todo esto... deberías intentar poner los posts más claros...

Citar
'COMO DECIRLE PARA QUE SUENE CON OTRA TARJETA
'DE SONIDO EN EL CASO DE TENER DOS
'POR QUE mciOpenParms.wDeviceID= -1 NO FUNCIONA

No tengo idea, pero yo seguiría este camino para intentar ver algo:

¿Con qué valor para wDeviceID funciona el asunto?

Si el valor es 0, el id tal vez sea un índice para el dispositivo. Prueba con 1
Si el valor tiene pinta de ser un manejador, busca alguna otra función del api que enumere los posibles dispositivos para obtener el manejador adecuado.

Suerte.

121
Hola esmeralda_

A lo mejor poco te ayuda esto, pero ten en cuenta que aunque el puerto pueda permitir una velocidad máxima, en la práctica esta velocidad se ve limitada por la que soporta el medio de transmisión que usas (el cable, vaya...) y los dispositivos a los que te conectes.

Chao.

122
Hola ebolo.

Una línea dibujada en un control con DrawWidth=1 tendrá irremediablemente el ancho de 1 pixel. Y como quien dice por definición no hay forma de obtener una línea más fina que eso... a no ser claró está, que uses una resolución mayor para tu pantalla, caso en el que como es lógico la línea se verá más fina.

Como sabes, se puede uno imaginar el monitor como una matriz de (pixels_ancho * pixels_alto) puntos, según resolución. El Alto o ancho mínimo de una línea siempre será un punto de esa matriz (ancho DrawWidth=1).

Tampoco puedes 'iluminar la mitad de un punto de la pantalla', por lo que eso de conseguir una línea de ancho 1'5 pixel... chungo. en en cuenta que el valor de DrawWidth indicará el número de pixels de ancho de una línea.


Chao.

123
Visual Basic 6.0 e inferiores / Re: Pausa
« en: Viernes 14 de Enero de 2005, 13:57 »
Ki empalador.

Suponiendo que el proceso que ejecuta el programa y el que recibe los eventos sea el mismo, podrías usar una variable booleana de una forma similar a esta:

Código: Text
  1.  
  2. Private bStop as Boolean
  3.  
  4. Private Sub Objeto_EventoDetener()
  5.     bStop = True
  6.     Do While bStop
  7.        DoEvents
  8.     Loop
  9. End Sub
  10.  
  11. Private Sub Objeto_EventoContinuar()
  12.     bStop = False
  13. End Sub
  14.  
  15.  

Suerte.

124
Visual Basic 6.0 e inferiores / Re: Problemas Con Acces Y Empaquetado
« en: Jueves 13 de Enero de 2005, 09:28 »
Hola Esmeralda_

Puedes hacer una prueba eliminando el 'On Error Resume Next' o utilizando algún control de errores (mucho mejor). Puede ocurrir que se produzca un casque y no te enteres de que pasa por el On error resume next.

Chao.

125
Visual Basic 6.0 e inferiores / Re: Leer De Archivo
« en: Jueves 13 de Enero de 2005, 09:25 »
Hola.

Get debe servir perfectamente para leer el archivo. Utiliza una variable de tipo byte para obtener los datos leídos. Si quieres leer más de un byte en cada 'Get' utiliza una matriz también de tipo byte dimensionada según el número de bytes que quieres leer en cada Get.

Chau.

Páginas: 1 ... 3 4 [5] 6 7 ... 43