• Sábado 13 de Septiembre de 2025, 10:03

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

Páginas: 1 [2] 3 4 ... 9
26
Visual Basic 6.0 e inferiores / Re: Mover Archivos
« en: Martes 13 de Septiembre de 2005, 18:47 »
Hola,
Visual, para esto, tiene la función FileCopy

Código: Text
  1. FileCopy "C:\cesar\Archivo.jpg", "D:\Fotos\Archivo.jpg"
  2.  
Otra opción es usar la función Api CopyFile. La ventaja, es que la anterior no funciona cuando el archivo está abierto y puede dar errores.

Para utilizarla, primero debes declararla. En el caso del ejemplo, se hizo en un módulo para hacerla pública.

Código: Text
  1. Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
  2.  
Se usa en forma muy similar.

Código: Text
  1. CopyFile "C:\cesar\Archivo.jpg", "D:\Fotos\Archivo.jpg",0
  2.  
el último parámetro (0) es para que copie a pesar de estar el archivo bloqueado.

Bueno, espero te sirva.

Salu2.

27
Visual Basic 6.0 e inferiores / Re: Problema Con Verificación De Existencia De Fichero
« en: Martes 13 de Septiembre de 2005, 15:38 »
Hola Sagutxo!

Para saber si existe el fichero, yo uso la siguiete funcioncilla, alojada en algún módulo:

Código: Text
  1. Public Function ExisteArchivo(ArchTmp As String) As Boolean
  2.     If Len(Dir$(ArchTmp)) = 0 Then
  3.         ExisteArchivo = False
  4.     Else
  5.         ExisteArchivo = True
  6.     End If
  7. End Function
  8.  

Y la utilizo:

Código: Text
  1. If ExisteArchivo(Base_050913_1.zip) then
  2.    ...
  3. End If
  4.  

Sé que no responde a tu pregunta específica, pero quizás te pueda servir.

Salu2.

28
Visual Basic 6.0 e inferiores / Re: Visual Basic Y Excel
« en: Martes 13 de Septiembre de 2005, 06:06 »
Hola!
Bienvenido al foro. Espero lo aproveches. He pasado por muchos foros, pero me quedo con este. La buena disposición de los compañeros es incomparable, y difícilmente te encontrarás con mensajes basura de esos que tanto desaniman a quien tiene una legítima duda.
Respecto a tu tema, no lo manejo a cabalidad, pero te recomiendo visitar este link, que te dirigirá a una discusión anterior.

Discusión anterior sobre excel

Si utilizas la búsqueda del foro, darás con muchos ejemplos como este.

Salu2.

29
Visual Basic 6.0 e inferiores / Re: Imagen Db De Acces
« en: Lunes 12 de Septiembre de 2005, 05:39 »
Bueno, si insistes en meter una imagen en la BD, te recomiendo seguir el consejo de saqutxo y revisar el post Guardar imagen en DB acces 97, un poco más abajo. Se hace a través de un objeto Ole, al menos así lo encontrarás en la base de datos "Neptuno", que viene con Access, en donde guarda la imagen de los empleados.
A saqutxo le enviaron un par de ejemplos, que, por lo que dice, le solucionaron el problema.

Suerte!

30
Visual Basic 6.0 e inferiores / Re: Imagen Db De Acces
« en: Domingo 11 de Septiembre de 2005, 03:08 »
Hola!
Si esta respuesta aparece más de una vez, te pido disculpas. Estoy teniendo problemas con la conexión.
Efectivamente, mi experiencia me dice que no es buena idea guardar imágenes en la base de datos. Es difícil de manejar y se infla a más no poder.
Te recomiendo bajar y analizar el siguiente código.

Salu2.

31
Visual Basic 6.0 e inferiores / Re: Imprimir Con .print
« en: Martes 23 de Agosto de 2005, 01:11 »
Hola!
Primero que nada, me parece buena la idea de poner como imagen de fondo un escaneo del original, se ve bien y es amigable para el usuario... Pero, si quieres imprimir el form:

Te imprimirá todo, icluida la imagen y botones y cuanto control encuentre.
La impresión de form es de mala calidad.
Tengo mis dudas respecto al tamaño en que saldrá la impresión.

Respecto a las otras opciones:

Crystalreports no es mala, pero será una jalea intentar encuadrarse. Por otro lado (no se como estará eso en las versiones actuales) yo tengo el crystal que venía con Visual 5.0 y cambia las posiciones al cambiar el modelo de impresora.

Lo mejor es usar el objeto printer. No tengo código a mano, pero es lo que he usado para formularios preimpresos con muy buenos resultados. Es un poco complicado al principio, pero una vez que te entusiasmas...
Es un simple sistema de coordenadas. Le indicas la posición x e y y le indicas lo que quieres imprimir. Algo así como:

printer.CurrentX = 2
printer.currentY = 10
printer.print "Hola Mundo"

si has determinado la escala en cms, te imprimirá "Hola mundo" a 10 cms desde el tope de la página y a 2 desde la izquierda.
Tiene muchas propiedades que hacen más interesante la impresión: la escala mencionada, tipo de letra, tamaño, papel a usar, etc.

Espero andar trayendo algo de código la proxima vez que entre a un ciber, a ver si te puedo ayudar más.

Salu2.

32
Visual Basic 6.0 e inferiores / Re: Comunicacion Con El Puerto Serial
« en: Martes 23 de Agosto de 2005, 00:52 »
Hola Yothamons!

Código a mano no tengo, pero si algunas indicaciones que te pueden ayudar.
Debes partir por comprender el uso del control mscomm, viene un ejemplo bastante bueno con visual basic.
Hecho esto, habrás comprendido que estos aparatos (balanzas, centrales telefónicas, etc...) generalmente se comunican enviando una cadena de caracteres a través del puerto serial, y que ese se puede capturar cuando se produzca el evento de que el buffer reciba la cadena, y que se detecta con OnEvents (al ver el ejemplo te quedará más claro).
Una vez que tengas la cadena, probalemente te encontrarás con que en ella viene más información que la que deseabas. Entonces, debes determinar en que posición está lo que buscas y capturarlo (la función Mid() se presta para estos casos.
Está bien, reconozco que la respuesta no es muy específica, pero la pregunta tampoco lo es. Bucea un poco en el ejemplo de visual, y seguro te podremos ayudar en forma más concreta.

Mantén el contacto.

Salu2.

33
Visual Basic 6.0 e inferiores / Re: Problemas Con La Conexion
« en: Lunes 1 de Agosto de 2005, 21:45 »
Pues con esto de los números de error no tengo buena memoria, pero los síntomas me son familiares.
Yo solucioné el problema descargando la última versión de Mdactype (o algo por la onda) de la página de Microsoft e instalandola en la máquina con problemas. Hasta donde entendí en mi investigación, aquí está la conectividad de Windows con las bases de datos y otras yerbas. También hay otro paquete que se puede bajar (Dcom98, creo que se llamaba). Pero como te digo, mi memoria es frágil y al final me funcionó de tanto apretarle teclas, aunque no recuerdo cuales.

Salu2.

34
Visual Basic 6.0 e inferiores / Re: Diferencias Entre Image Con Picture Box
« en: Martes 26 de Julio de 2005, 22:00 »
Hummmm!
No he hecho un post grado respecto al tema, pero en lo que a tí te interesa la principal diferencia es:

Propiedad stretch  (o algo así) del imagecontrol.

Si esta propiedad tiene el valor 'True', ajustará la imagen que contenga para adecuarse a los nuevos límites del control. Eso NO LO TIENE un picturebox, que se limita a contener la imagen en el tamaño y formato en que venga.

Luego, si quieres redimensionar, picture no es tu tipo.

Me voy en busca de un post que subí hace un tiempo, si lo encuentro, edito y te cuento.-

Edición:

Busca en este link
Discusión Imágenes

Ahí subí un código en el que jugaba un poco mezclando las características de in picture y un image para mostrar las imágenes sin que se distorsionaran (un problemilla que tiene el stretch)

Salu2

35
Visual Basic 6.0 e inferiores / Re: Crear Instalador
« en: Viernes 15 de Julio de 2005, 01:08 »
Debes agregar una sección 'Dirs', con la siguiente sintaxis:

Código: Text
  1. [Dirs]
  2. Name: "c:\Archivos de Programa\MyPrograma\BD"
  3.  

También debería funcionar así:

Código: Text
  1. [Dirs]
  2. Name: "{app}\BD"
  3.  

De esta forma te aseguras que la carpeta se cree en el directorio de la aplicación sin importar en donde la instale el usuario.

Salu2.

36
Visual Basic 6.0 e inferiores / Re: Problema Con Datareport
« en: Miércoles 13 de Julio de 2005, 16:55 »
Hola!
Aunque no uso comunmente el DataReport, tengo alguna idea de lo que te sucede. Cuando abres un datareport, este abre el Recordset (o command) que utilizará y lo deja así. Si buscas en el foro encontrarás muchas preguntas al respecto. La solución es cerrar el Recordset o command una vez que haz mostrado el reporte.

Otra posibilidad (el ejemplo es para dataenvironment, pero puedes entender de que se trata) es verificar si el recordset está abierto antes de enviar el informe, y, si es así, cerrarlo:

Código: Text
  1. if dataenvironment1.rscommand1.state= adstateopen then
  2.    dataenvironment1.rscommand1.close
  3.    end if
  4. datareport1.show
  5.  

Espero soluciones tu problema. Salu2.

37
Visual Basic 6.0 e inferiores / Re: Crear Instalador
« en: Miércoles 13 de Julio de 2005, 16:37 »
Bien.

Lo que yo creo es que si no están en es lst no los necesitas y los puedes borrar con tranquilidad. Lo más probable es que estés usando como plantilla un archivo sript en donde se mencionan. Por otro lado, si no están en tu sistema y la aplicación funciona correctamente CLARAMENTE NO LOS NECESITAS. Borralos del Script con tranquilidad.

Salu2.

38
Visual Basic 6.0 e inferiores / Re: Crear Instalador
« en: Lunes 11 de Julio de 2005, 15:30 »
Extraño!!

Pues, si tienes el setup.lst, lo que te puedo recomendar es que lo abras con cualquier procesador de texto y busques ahí los archivos que te causan duda.

Si no están, no los necesitas. Pero, a qué te refieres con que lo hiciste a partir del Lst? Utilizaste InnoScript?

Si es así, y están en el Lst, puede que sí los necesites. Lo que pasa es que el InnoScript a veces se pone un poco tonto al buscar y no encuentra lo que está bajo sus narices.
Ahora, si no están en el Lst, puede que estés usando como base un archivo Inno en donde sí están. De ser este el caso, puedes revisar lo siguiente: Cuando creas un Script a partir de un archivo tipo, InnoScript juntará en la sección files todos los archivos utilizados, pero dejará al final, y sin tocar, aquellos archivos que estando en la plantilla no son aparentemente necesarios para la aplicación.

Bueno, ojalá te sirva; pero tengo mis dudas pues debí suponer muchas cosas.

Salu2.

39
Visual Basic 6.0 e inferiores / Re: Duda Con String
« en: Martes 5 de Julio de 2005, 23:10 »
Bueno, ya te había dicho que sin Visual pa que me corrija cometo equivocaciones.

Primero, me faltaba declarar 'Sleep', que es API... y otras pequeñas cosillas para que funcione como yo quería. Así es que te incluyo un nuevo código con el que me estuve entreteniendo.
Te adjunto, además, el proyecto, por si quieres probar como funciona la idea sin tener que darte la lata de copiar y pegar (je).

Código: Text
  1. Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
  2.  
  3. Private Sub Command1_Click()
  4.     Dim Lni As Integer
  5.     Dim lsLetra As String
  6.     Dim lsFrase As String
  7.     Text1.SetFocus
  8.     Screen.MousePointer = vbHourglass
  9.    lsFrase = Text1.Text
  10.    For Lni = 1 To Len(lsFrase) Step 1
  11.        lsLetra = Mid(lsFrase, Lni, 1)
  12.        'Un pequeño lujillo, pa que vaya marcando la letra que está leyendo.
  13.        'También la podrías mostrar en una etiqueta... Pero nada de esto es necesario.
  14.        Text1.SelStart = Lni - 1
  15.        Text1.SelLength = 1
  16.        If lsLetra = " " Then
  17.           Sleep 500 ' Para separar palabras
  18.        Else
  19.           msTratarLetra lsLetra
  20.           Sleep 300  'Para separar códigos entre letras
  21.        End If
  22.    Next Lni
  23.    Screen.MousePointer = vbDefault
  24. End Sub
  25.  
  26. Private Sub Destellar(CodDestello As String)
  27.   Dim i As Integer, MlEsperar As Integer
  28.   For i = 1 To Len(CodDestello)
  29.      If Mid(CodDestello, i, 1) = "0" Then
  30.         MlEsperar = 150 'Espera 150 milisegundos manteniendo el Shape blanco
  31.      Else
  32.         MlEsperar = 300 'Espera el Doble (Raya. El anterior era Punto)
  33.      End If
  34.      'Hago Destellar por el tiempo que corresponda
  35.     Sleep MlEsperar  'Para que se mantenga el negro el tiempo suficiente
  36.      Shape1.BackColor = vbWhite 'Blanco
  37.      Beep
  38.      DoEvents 'Necesario para que se muestre en el formulario
  39.      Sleep MlEsperar
  40.      Shape1.BackColor = vbBlack 'Negro            (vuelve al color original)
  41.      DoEvents
  42.   Next i
  43. End Sub
  44.  
  45. Private Sub msTratarLetra(lsLetra As String)
  46.     'Primero pongo la letra en mayúscula para una fácil comparación
  47.     lsLetra = UCase(lsLetra)
  48.   Select Case lsLetra
  49.     Case "A"
  50.         Destellar "01"
  51.     Case "B"
  52.         Destellar "1000"
  53.     Case "C"
  54.         Destellar "1010"
  55.     Case "D"
  56.         Destellar "100"
  57.     Case "E"
  58.         Destellar "0"
  59.     Case "F"
  60.         Destellar "0010"
  61.     Case "G"
  62.         Destellar "110"
  63.     Case "H"
  64.         Destellar "0000"
  65.     Case "I"
  66.         Destellar "00"
  67.     Case "J"
  68.         Destellar "0111"
  69.     Case "K"
  70.         Destellar "101"
  71.     Case "L"
  72.         Destellar "0100"
  73.     Case "M"
  74.         Destellar "11"
  75.     Case "N"
  76.         Destellar "10"
  77.     Case "O"
  78.         Destellar "111"
  79.     Case "P"
  80.         Destellar "0110"
  81.     Case "Q"
  82.         Destellar "1101"
  83.     Case "R"
  84.         Destellar "010"
  85.     Case "S"
  86.         Destellar "000"
  87.      Case "T"
  88.        Destellar "1"
  89.      Case "U"
  90.        Destellar "001"
  91.      Case "V"
  92.        Destellar "0001"
  93.      Case "W"
  94.        Destellar "011"
  95.      Case "X"
  96.        Destellar "1001"
  97.      Case "Y"
  98.        Destellar "1011"
  99.      Case "Z"
  100.        Destellar "1100"
  101.     End Select
  102. End
  103.  

Salu2

Pd: Aquí va el código... Espero que subas o me envíes al correo el proyecto terminado.

40
Visual Basic 6.0 e inferiores / Re: Duda Con String
« en: Martes 5 de Julio de 2005, 18:48 »
Hola, Joselito.
  Me parece muy interesante tu idea..., y entusiasmante a la vez. Siento no tener un Visual cerca, pues como soy sólo un aficionado, mi código podría no resultar exacto sin que Visual me esté recordando mis errores.
 Bueno, mi aporte es el siguiente (si gustas):
 1º, me quedo con la primera parte del código de Shiquilla con una pequeña corrección para el caso de los espacios separadores de palabras. Es decir:

Código: Text
  1. Dim lnI As Integer
  2. Dim lsLetra As String
  3. Dim lsFrase As String
  4.    lsFrase = Text1.Text
  5.    For lnI = 1 To Len(lsFrase) Step 1
  6.        lsLetra = Mid(lsFrase, lnI, 1)
  7.        if lsLetra=" " then
  8.           Sleep 500
  9.        Else
  10.           msTratarLetra lsLetra
  11.        Endif
  12.    Next lnI
  13.  

Notas: Esto es para el caso de que quieras traducir una cadena que ya està en un TextBox. Si quieres traducir a medida que presionas las letras necesitas usar KeyPress; pero creo que esto esta bien. Tengo dudas con la funciòn Sleep (o Wait.., o algo así; como te explicaba, no tengo un visual cerca). Lo que pretendo que haga es esperar 500 milisegundos antes de continuar con la siguiente instrucción.

Lo que cambiaría sería el procedimiento msTratarletra. Pero antes, agregaremos el siguiente procedimiento para manejar destellos:

Código: Text
  1. Private sub Destellar(CodDestello as String)
  2.   Dim i as integer, MlEsperar as integer
  3.   For i=1 to len(CodDestello)
  4.      if mid(CodDestello,i,1)="0" then
  5.         MlEsperar=150 'Espera 150 milisegundos manteniendo el Shape blanco
  6.      Else
  7.         MlEsperar=300 'Espera el Doble (Raya. El anterior era Punto)
  8.      Endif
  9.      'Hago Destellar por el tiempo que corresponda
  10.      'Tomando tu idea del Shape
  11.      Shape.FillColor=vbWhite'Blanco
  12.      Sleep MlEsperar
  13.      Shape.FillColor=vbBlack 'Negro            (vuelve al color original)
  14.   Next i
  15. End Sub
  16.  

Donde CodDestellos es una cadena de 0s y 1s que indicará si se trata de un Punto o una Raya.
Así, por ejemplo, una S sería "000", una O serìa "111" (Dije POR EJEMPLO, no sé Morse)

Ahora retomamos la funciòn msTratarLetra:

Código: Text
  1. Private Sub msTratarLetra(lsLetra As String)
  2.   Select Case lsLetra
  3.      Case "S"
  4.        Destellar "000"
  5.      Case "O"
  6.        Destellar "111"
  7.      'Etcètera
  8.   End Select
  9.  

Nota que al asignar 0s y 1s te evitas....

Espero que sirva al menos como idea. A mi tu pregunta me ha servido pa' sacudir un poco las neuronas.

Salu2.

Pd: En cuanto tenga tiempo lo intento.

41
Visual Basic 6.0 e inferiores / Re: El For No Me Corre
« en: Sábado 2 de Julio de 2005, 19:19 »
Saludos, Shiquilla.

42
Visual Basic 6.0 e inferiores / Re: El For No Me Corre
« en: Sábado 2 de Julio de 2005, 19:16 »
Hola:
Lo que veo es lo siguiente:

Citar
w = Mid(sFrase, 1, h)

Si sólo quieres leer un caracter, debe ser:

Código: Text
  1. w=Mid(sFrase, h, 1)
  2.  

Es de esos momentos en que los árboles no dejan ver el bosque.

Salu2.

43
Visual Basic 6.0 e inferiores / Re: Problema Mdiform
« en: Viernes 1 de Julio de 2005, 17:20 »
Hola Diablo Rojo:
  Sin duda que darle la propiedad picture al Mdi es lo más fácil y rápido. Sin embargo, alguna vez vi  que alguien localizaba un logo en el centro de la pantalla y parecía estar incrustado en el Mdi. Lo que hacía, era crear un formulario MdiChild sin bordes ni controles, poner ahí la imagen que quería mostrar centrándolo en la pantalla. Lo abría al iniciar la aplicación y no se acordaba de él hasta cerrarla. Ahora, si abres este Child maximizado, tienes lo que quieres.

Salu2.

44
Visual Basic 6.0 e inferiores / Re: Linea De Error
« en: Viernes 1 de Julio de 2005, 17:11 »
Hola a todos!
  Alguna vez había visto ese código y, por supuesto, me pareció muy interesante a primera vista. Pero...: hay que numerar las líneas.
  Bueno, hasta ahí me llegó el entusiasmo; pues me resultaba más fácil desactivar temporalmente el 'On Error Goto...' y Visual hacía el resto deteniendo el programa en la línea con error, haciendo ruido, marcando el error con resalte, etc...
  Si alguien sabe una forma de aprovechar esto de una forma menos aparatosa, por favor que lo postee.

Salu2.

45
Visual Basic 6.0 e inferiores / Re: Nombres De Dias De La Semana
« en: Sábado 25 de Junio de 2005, 16:30 »
Hola Kurt!
Aunque creo que ya lo debes tener solucionado, nunca está de más otra opción.
Puedes lograr lo mismo usando la función Format() aplicada a la fecha que quieras mostrar. Algo así:

Dim DiaSem as String
DiaSem=Format(Date, "dddd")

Salu2.

46
Visual Basic 6.0 e inferiores / Re: Crystal Y Su P.... Madre
« en: Viernes 24 de Junio de 2005, 22:01 »
A lo mismo:

Que bien que esta solución te haya servido, pero hay casos en los que no. Por ejemplo, cuando la base de datos está ubicada en una posición distinta de la aplicación. O, peor aún, cuando el usuario puede mover y determinar la ubicación, o usar distintas bases de datos.

Crystal tiene la propiedad DataFiles(Indice) que le puede indicar en tiempo de ejecución donde está la base de datos que contiene la tabla a listar. Así, si nuestro objeto Crystal se llama CR (por ejemplo), se le puede decir:

CR.Datafiles(0)= "F:\Bases\Bases.mdb"

Espero que a alguien le sirva.

Salu2.

47
Visual Basic 6.0 e inferiores / Re: Capturar Serial Fisico Del Dd De La Pc
« en: Miércoles 15 de Junio de 2005, 21:29 »
Gracias Shiquilla!
Me lo llevo para ver si lo puedo probar el fin de semana.
Si aprendo algo, lo postearé.

Salu2.

48
Visual Basic 6.0 e inferiores / Re: Capturar Serial Fisico Del Dd De La Pc
« en: Miércoles 15 de Junio de 2005, 00:54 »
Pues bien, DJ LU.

¡TIENES MUCHA RAZON!

Probé el código en XP y me dio el mismo error que a tí.
El problema es que ya me había entusiasmado con la idea, pues lo quería usar para proteger mis aplicaciones autorizando un ID determinado de Disco Duro. El problema con GetVolume... es que al formatear el disco cambia.
He revisado las funciones de Api que me han parecido, pero no he dado con nada como lo que hacía esta aplicación en Win98.

Si alguien nos puede ayudar, tantas gracias.

49
Visual Basic 6.0 e inferiores / Re: Empaquetadores
« en: Miércoles 18 de Mayo de 2005, 22:02 »
Hola!

Tu problema, como se menciona más arriba, es que por seguridad las ùltimas versiones de Inno no permiten tomar archivos directamente del System32.

Claro, si lo quieres hacer, siempre hay un truco:
Debes agregar el flag allowunsafefiles (permitir archivos inseguros) en aquellas lineas del script en que estén, en tu caso:

Source: "C:\WINDOWS\system32\Crpaig80.dll"; DestDir: "{sys}"; CopyMode: alwaysskipifsameorolder; Flags: sharedfile allowunsafefiles

Chau.

50
Visual Basic 6.0 e inferiores / Re: Bases De Datos Access Compicadas !!
« en: Viernes 13 de Mayo de 2005, 01:23 »
Hola!

Son ambas bases de datos de la misma versión?
Puede que una sea Access 97 y la otra Access 2000, por ejemplo?

Si así fuera, debes corregir el Dataenvironment a la conección correcta.

Chau!

Páginas: 1 [2] 3 4 ... 9