• Domingo 22 de Diciembre de 2024, 19:11

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 ... 7 8 [9] 10 11 ... 43
201
Visual Basic 6.0 e inferiores / Re: Visual Basic
« en: Miércoles 15 de Diciembre de 2004, 09:40 »
Hola Orgintel.

Puedes utilizar el método print para imprimir el texto letra a letra. Controla con las propiedades CurrentX y CurrentY la posición de cada letra. Cambia estas coordenadas según tus necesidades, utiliza algún timer, etc.

También podrías utilizar un bitmap para cada una de las letras y esta vez jugar con las propiedades Left y Top.

En definitiva, dale tú vida a la cosa. Ponte a ello que no es muy complicado.

Chao.

202
Visual Basic 6.0 e inferiores / Re: Cerrar Msn
« en: Miércoles 15 de Diciembre de 2004, 09:33 »
Hola.

Para poder terminar un proceso en una red en otra máquina distinta a la tuya, supongo que tendrás que utilizar sockets (se podría tambien con un Exe ActiveX, imagino), comunicando dos aplicaciones: una que da la orden de cerrar determinada aplicación en una máquina y otra que corra en esa máquina y que realice la labor.

Si la aplicación 'finalizadora' es la misma que ha iniciado el proceso a finalizar,
Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Const PROCESS_QUERY_INFORMATION = &H400
  5. Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long
  6. Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
  7.  
  8. Private lProcId As Long
  9.  
  10. Private Sub Comenzar()
  11.    lProcId = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell("Ejecutable.Exe Argumentos", vbNormalFocus))
  12.  
  13. End Sub
  14.  
  15.  
debería haber guardado el ID de proceso para posteriormente finalizarlo.
Código: Text
  1.  
  2. Private Sub Finalizar()
  3.    Dim lRc as long, lExitC as long
  4.    lRc = TerminateProcess(lProcId, lExitC)    
  5. End Sub
  6.  
  7.  

También se podrían recuperar las tareas activas identificar la que interese y finalizarla.
Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Type PROCESSENTRY32
  5.     dwSize As Long
  6.     cntUsage As Long
  7.     th32ProcessID As Long
  8.     th32DefaultHeapID As Long
  9.     th32ModuleID As Long
  10.     cntThreads As Long
  11.     th32ParentProcessID As Long
  12.     pcPriClassBase As Long
  13.     dwFlags As Long
  14.     szExeFile As String * 260
  15. End Type
  16. Private Declare Function CreateToolhelpSnapshot Lib "kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  17. Private Declare Function ProcessFirst Lib "kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  18. Private Declare Function ProcessNext Lib "kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
  19. Private Declare Sub CloseHandle Lib "kernel32" (ByVal hPass As Long)
  20.  
  21. Private sTareas() As String
  22.  
  23. Private Sub GetProcesos()
  24.    
  25.     Dim lSnapShot As Long
  26.     lSnapShot = CreateToolhelpSnapshot(2&, 0&)
  27.    
  28.     If lSnapShot <> 0 Then
  29.         Dim Proceso As PROCESSENTRY32
  30.         Proceso.dwSize = Len(Proceso)
  31.         Dim lRc As Long, lCta As Long
  32.         lRc = ProcessFirst(lSnapShot, Proceso)
  33.         Do While lRc
  34.             lCta = lCta + 1
  35.             If lCta > 1 Then
  36.                 ReDim Preserve sTareas(2, lCta)
  37.             Else
  38.                 ReDim sTareas(2, 1)
  39.             End If
  40.             sTareas(0, lCta - 1) = Proceso.th32ProcessID
  41.             sTareas(1, lCta - 1) = Left(Proceso.szExeFile, InStr(Proceso.szExeFile, Chr(0)) - 1)
  42.             lRc = ProcessNext(lSnapShot, Proceso)
  43.         Loop
  44.         CloseHandle lSnapShot
  45.     End If
  46.    
  47. End Sub
  48.  
  49.  

Son ideas, tú verás como te va. Suerte.

Abur

203
Visual Basic 6.0 e inferiores / Re: Como Busco Datos A Travez De Un Adodc
« en: Miércoles 15 de Diciembre de 2004, 09:13 »
Citar
seria bueno un codigo de ejemplo para aplicacion de una factura

... y así ya de paso cortar y pegar.

¿Por qué no cuentas mejor la duda que tienes?

204
Visual Basic 6.0 e inferiores / Re: Fondo Degradado En Mdiform
« en: Miércoles 15 de Diciembre de 2004, 09:11 »
Hola.

Añade al MDIForm un PictureBox (recordar que un mdi puede contener controles con la propiedad Alignable). Luego usa un código de este estilo:

Código: Text
  1.  
  2. Private Sub MDIForm_Resize()
  3.     Picture1.Move 0, 0, Me.Width, Me.Height
  4.     Picture1.Cls
  5.     Picture1.AutoRedraw = True
  6.     Picture1.DrawStyle = 6
  7.     Picture1.DrawMode = 13
  8.     Picture1.DrawWidth = 2
  9.     Picture1.ScaleMode = 3
  10.     Picture1.ScaleHeight = (256 * 2)
  11.     Dim i1 As Integer, iY As Integer
  12.     For i1 = 0 To 255
  13.        Picture1.Line (0, iY)-(Picture1.Width, iY + 2), RGB(0, 0, i1), BF
  14.        iY = iY + 2
  15.     Next i1
  16. End Sub
  17.  
  18.  

Puedes jugar con el color, o fácilmente hacer el degradado horizontal en vez de vertical.

Chao.

205
Visual Basic 6.0 e inferiores / Re: Carpetas Y Archivos
« en: Jueves 9 de Diciembre de 2004, 15:48 »
Hola jegonzalezrubio.

Los argumentos de línea de comandos pasados al programa los recibirás a través del objeto Command. El momento en que recuperas estos parámetros es: cuando los necesites, así de sencillo, aunque normalmente será al comienzo de la ejecución del programa: en un método Main o si el objeto inicial del proyecto es un formulario, en el evento Load del mismo.

Por ejemplo, en el fuente de un programa, en un módulo:
Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Main()
  5.    If Command$ = "" Then
  6.       MsgBox "No se han pasado parámetros"
  7.    Else
  8.       MsgBox "Se ha pasado como parámetro" & vbcrlf & Command$ _
  9.       & vbcrlf & " y el programa intentará hacer algo con eso."
  10.    End If
  11. End Sub
  12.  
  13.  

Cuando asociamos una extensión a una aplicación, windows lo que hace es pasar como parámetro al ejecutable asociado el archivo que se desea abrir, por lo que ese ejecutable deberá recuperar el parámetro y hacer lo que deba con ese valor.

Chao.

206
Visual Basic 6.0 e inferiores / Re: Declaraciones Winapi
« en: Jueves 9 de Diciembre de 2004, 15:12 »
Hola.

Gracias nostromo por el aporte... conviene recordar que las declaraciones de las funciones, constantes y tipos del api también están disponibles (si lo has instalado con vb, claro) en las herramientas, apareciendo como Visor de texto API.

Chao.

207
Visual Basic 6.0 e inferiores / Re: Proceso De Facturacion / Compras
« en: Jueves 9 de Diciembre de 2004, 15:08 »
Hola ches.

No he acabado de comprender completamente tu problema... pero te recomiendo que en vez de utilizar un datagrid uses un flexgrid manejado mediante código a tu antojo. Para editar datos de una fila puedes usar una línea de edición creada mediante textbox, combobox o lo que necesites... también podrías dar la sensación de realizar la edición sobre la misma celda del grid usando un textbox desplazado en el formulario a la posición que corresponda sobre la celda del grid a editar y con sus mismas dimensiones.

Esto que te recomiendo es más laborioso, pero por supuesto muchísimo más flexible también.

Por si esto que te cuento te suena a chino y quieres un ejemplo, creo recordar, aunque no lo he mirado, que hace poco alguien posteo en el foro un ejemplo de como implementar esto.

Suerte.

208
Visual Basic 6.0 e inferiores / Re: Impresion
« en: Jueves 9 de Diciembre de 2004, 15:01 »
Hola Drek.

Ahora mismo no sé cuales, pero existen funciones del api para enumerar los trabajos en las distintas colas de impresión (EnumPrinterJobs o algo así). Por supuesto primero deberás enumerar las distintas impresoras (EnumPrinters esta sí , seguro).

Si tengo tiempo (y ganas) luego busco... de todas formas me suena que en este mismo foro ya ha salido algo de esto, busca tú a ver.

Suerte.

209
Visual Basic 6.0 e inferiores / Re: GetOpenFileName , GetSaveFileName
« en: Jueves 9 de Diciembre de 2004, 14:45 »
Para Asa (y a quien interes, por supuesto):

Puedes obtener un cuadro de diálogo para seleccionar una carpeta mediante este código:

Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Type BROWSEINFO
  5.     hOwner As Long
  6.     pidlRoot As Long
  7.     pszDisplayName As String
  8.     lpszTitle As String
  9.    ulFlags As Long
  10.    lpfn As Long
  11.    lParam As Long
  12.    iImage As Long
  13. End Type
  14. Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
  15. Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
  16.  
  17. Public Function SeleccionarPath(Byval HWnd as long, Byal Titulo as strinh) As string
  18.  
  19.    Dim bInf As BROWSEINFO
  20.    Dim lRc As Long
  21.    Dim lPathID As Long
  22.    Dim sPath As String
  23.    
  24.    If Titulo = "" Then Titulo = "Recuperar vía de acceso"
  25.    bInf.hOwner = hWnd
  26.    bInf.lpszTitle = Titulo
  27.    bInf.ulFlags = BIF_RETURNONLYFSDIRS
  28.    lngPathID = SHBrowseForFolder(bInf)
  29.    sPath = String(512, Chr(0))
  30.    lRc = SHGetPathFromIDList(lPathID, sPath)
  31.    If lRc > 0 Then SeleccionarPath = Left(sPath, InStr(1, sPath, Chr(0)) - 1)
  32.  
  33. End Function
  34.  
  35.  

Abur.

210
Visual Basic 6.0 e inferiores / Re: Metodo Print
« en: Jueves 9 de Diciembre de 2004, 14:36 »
Hola druida.

Para conseguir estos cambios en el resultado de 'print' debes establecer las correspondientes propiedades en el objeto del que usas su método print.

Por ejemplo:
Código: Text
  1.  
  2. Printer.ForeColor = &HFF
  3. Printer.Font.Name = "Small Fonts"
  4. Printer.Font.Size = 5
  5. Printer.Print "Este es un texto de color rojo bastante pequeño"
  6.  
  7.  

Esto también es aplicable al resto de los métodos gráficos.

Para imprimir una imagen puedes usar el método PaintPicture. Podrías usar una función del GDI, tipo bitblt, o podrías dibujarla pixel a pixel. Básicamente esto variará dependiendo de donde tengas la imagen (en un archivo, en un control, en objeto stdPicture, etc).

Espero que esto te sirva.

Abur.

211
Visual Basic 6.0 e inferiores / Re: Ms Word Con Vb6
« en: Miércoles 1 de Diciembre de 2004, 18:20 »
Hola tovarich

Así por encima:

Usa el editor de vba del Word...

1-Graba una macro con las operaciones que quieres hacer.
2-Ve a herramientas > macro > editor de visual basic
3-Usa el explorador de proyectos para localizar un módulo en el que encontrarás el código de las acciones que grabaste. Ahora ya conoces el código.

Para acceder desde vb a un doc de word debes usar la automatización de forma similar a como si lo hicieras al excel. En este foro hay abundantes ejemplos de cómo hacerlo.

Suerte.

212
Visual Basic 6.0 e inferiores / Re: Alamacenar En Un Combo List Desde Base De Datos
« en: Miércoles 1 de Diciembre de 2004, 18:16 »
Hola.

Supongo que ya pronto te cuenta tú mismo de que hacías mal
Realiza un bucle de este estilo:

Código: Text
  1.  
  2. rs.MoveFirst
  3. Do until rs.Eof
  4.    combolist.AddItem rs("columnaid").Value
  5.    rs.MoveNext
  6. loop
  7.  
  8.  

Con un bucle for, la iteración debe ser desde 1 hasta rs.RecordCount y esto no excluye posicionar el siguiente registro...

Suerte.

213
Visual Basic 6.0 e inferiores / Re: Superíndices En Textbox
« en: Miércoles 1 de Diciembre de 2004, 18:11 »
Hola tiquinho.

Si lo único que te interesa es representar la expresión y NO capturarla, para mi la solución más sencilla sería usar un picturebox con distintos tamaños de font, jugando un poco con el CurrentY, lo que pretendes debe estar chupado... puede ser posible con un richtextbox, pero así de buenas a primeras, si pudiese me quedaría con el picturebox.

A ver si te sirve la sugerencia.

Chao.

214
Visual Basic 6.0 e inferiores / Re: Borrar Linea De Texto
« en: Miércoles 1 de Diciembre de 2004, 18:06 »
Hola.

Lo que radical pretende hacer puede ser muy sencillo o complicarse dependiendo de lo siguiente:

Si cada línea de texto en el textbox acaba en dos carácteres Cr y Lf (vbCrLf) y eso es lo que hace que se produzca un salto de línea, la cosa sería fácil, pero si el número de líneas viene dado por un ancho de texto mayor que el ancho del TextBox la cosa se lia un poco más. Y ya si se dan las dos situaciones juntas, puedes volverte loco y te compensará más usar otro control o repasar la lógica de lo que quieres hacer.

Para el primer caso bastaría con algo de este estilo:
Código: Text
  1.  
  2. 'Eliminar la línea 5, por ejemplo
  3. Const ELIMINAR_LINEA_N = 5#
  4.    
  5. Dim var1 As Variant
  6. var1 = Split(Text1.Text, vbCrLf)
  7.    
  8. Dim i1 As Integer, s1 As String
  9. For i1 = 0 To UBound(var1) - 1
  10.     If ELIMINAR_LINEA_N <> i1 + 1 Then _
  11.     s1 = s1 & var1(i1) & vbCrLf
  12. Next i1
  13. Text1.Text = s1
  14.  
  15.  

Si se da otra situación, tendrías que usar la función TextWidth del TextBox para ir calculando según el texto y su ancho en el control la división por líneas que quedaría (no sé si esto se entiende...). El tema se complica un poco más, y la verdad que estoy a punto de marchar a casa y no tengo tiempo ni ganas de ponerme...

Espero que esto te sirva. Suerte.

Abur.

215
Visual Basic 6.0 e inferiores / Re: Formulario Con Foco
« en: Lunes 29 de Noviembre de 2004, 17:33 »
Hola FABIANGARCIA.

La solución te la proporciona la función del api SetWindowPos. Busca en este mismo foro que hay temas abondo.

Suerte.

216
Visual Basic 6.0 e inferiores / Re: Codigo De Barras En 2 Dimensiones
« en: Lunes 29 de Noviembre de 2004, 17:30 »
Kaixo FRIJU.

Poca o nula experiencia puedo aportar en el asunto, pero otros lo hacen por mi: en el foro hay varios temas hablando de esto.

Por lo demás, según creo la cosa estriba en conseguir el font adecuado a tu caso EAN/UCC 128 (en principio lo que hay por ahí del EAN128 es de pago, y ya comprenderás lo que quiero decir con 'en principio') , 29 , etc.

Una vez que tienes el font, imprime/visualiza el código y listo.

En cuanto a los lectores, ellos mismos te proporcionarán según modelo un modo de transmitir el código que leen.

Por otro lado, en internet sí que hay abundantes especificaciones sobre códigos de barras, formas de interpretar códigos, resolución de dígitos de verificación, etc.

Suerte. Agur.

217
Visual Basic 6.0 e inferiores / Re: Descarga De Formularios!!!
« en: Lunes 29 de Noviembre de 2004, 17:20 »
Esto último que cuentas es sólo cierto en parte: sólo en caso de que estemos hablando de formularios mostrados con un 'formulario propietario' (2º parámetro del método Show) o en caso de que los formularios sean modales.

Chao.

218
Visual Basic 6.0 e inferiores / Re: Segmentacion Images
« en: Lunes 29 de Noviembre de 2004, 14:58 »
Como muy bien dice o colega tiquinho, busca en este mismo foro. Usa como palabra a buscar BitBlt.

Chao.

219
Visual Basic 6.0 e inferiores / Re: Descarga De Formularios!!!
« en: Lunes 29 de Noviembre de 2004, 14:55 »
Hola.

No he comprendido muy bien el hilo de esta conversación y no sé si con lo que dijo Cyclop has conseguido resolver tu problema... pero cuento un pequeño asunto que puede dar algún que otro quebradero de cabeza y que enlaza en parte directamente con lo que dijo Cyclop:

Si cuando nos referimos a algún miembro de un formulario, control de usuario, etc, lo hacemos directamente a través del nombre de objeto en el proyecto, dependiendo de lo que hagamos puede que no estemos seguros de a qué instancia del objeto nos referimos. Por este motivo, lo deseable es instanciar siempre los objetos a través de la correspondiente variable de objeto.
ESTO NO ME GUSTA
Código: Text
  1.  
  2. .
  3. .
  4. Form1.Text1.Text = "Un texto"
  5. .
  6. .
  7.  
  8.  

ESTO ME GUSTA MÁS
Código: Text
  1.  
  2. Dim frm1 As Form1
  3. Set frm1 = Form1
  4. .
  5. .
  6. frm1.Text1.Text = "Un texto"
  7. .
  8. .
  9. set frm1 = Nothing
  10.  
  11.  

Podría parecer lo mismo... pero no lo es.

Chau.

220
Visual Basic 6.0 e inferiores / Re: Ftp
« en: Lunes 29 de Noviembre de 2004, 14:42 »
Kaixo.

No sé si a estas alturas te servirá de mucho, pero ...

El error tampoco sé a qué puede deberse, pero tal vez tenga algo que ver con esta nota:
Citar
Nota   Cuando utilice el método OpenURL, establezca la propiedad URL antes que las propiedades Password y UserName. Si establece la propiedad URL en último lugar, las propiedades UserName y Password estarán establecidas a "".
Al no estar establecida previamente una url, puede que con el usuario y la contraseña pase algo de esto...

prueba así a ver:
Código: Text
  1.  
  2. INet1.URL="FTP://AquiHayUnaIP"
  3. INet1.UserName = "red"
  4. Inet1.Password = "red1"
  5. Inet1.RemotePort = 21
  6. INet1.OpenURL
  7. INet1.Execute "Type Bynari"
  8. INet1.Execute "PUT archivo1 archivo2"
  9.  
  10.  

Sobre lo del tipo binario... en el código anterior puedes encontrar la solución: ejecuta el comando Type bynari.

Fíjate También en este ejemplo de la ayuda:
Código: Text
  1.  
  2. Dim b() As Byte
  3. Dim strURL As String
  4. ' Establece strURL a una dirección válida.
  5. strURL = "FTP://ftp.GreatSite.com/China.exe"
  6. b() = Inet1.OpenURL(strURL, icByteArray)
  7.  
  8. Open "C:\Temp\China.exe" For Binary Access _
  9. Write As #1
  10. Put #1, , b()
  11. Close #1
  12.  
  13.  

Espero que esto te sirva de algo.

Agur.

221
Visual Basic 6.0 e inferiores / Re: Ftp
« en: Viernes 19 de Noviembre de 2004, 09:59 »
Kaixo.

Usando un control Inet supongo que se podría hacer utilizando el comando FTP 'dir' y/o los comandos 'ls' o 'mls' para mostrar el contenido de uno o varios directorios respectivamente. Para recuperar esta información, fíjate en lo que dice la ayuda del control.

Citar
En este ejemplo se utiliza el método GetChunk en el evento StateChanged para obtener un bloque de datos. Se emplea una instrucción Select Case para determinar lo que se debe hacer en todos los estados posibles. En el ejemplo se supone que en el formulario hay un control TextBox llamado txtData.

Private Sub Inet1_StateChanged(ByVal State As Integer)
   ' Recupera la respuesta del servidor con el método
   ' GetChunk cuando State = 12. En este ejemplo se
   ' supone que los datos son texto.

   Select Case State
   ' ... No se muestran los demás casos.

   Case icResponseReceived ' 12
      Dim vtData As Variant ' Variable de datos.
      Dim strData As String: strData = ""
      Dim bDone As Boolean: bDone = False

      ' Obtiene el primer bloque.
      vtData = Inet1.GetChunk(1024, icString)
      DoEvents
      Do While Not bDone
         strData = strData & vtData
         DoEvents
         ' Obtiene el bloque siguiente.
         vtData = Inet1.GetChunk(1024, icString)
         If Len(vtData) = 0 Then
            bDone = True
         End If
      Loop

      txtData.Text = strData
   End Select
   
End Sub

A ver si esto te sirve.

Por cierto, este control también permite definir el puerto a usar (joder, parece que esté haciendo propaganda del control... que no, hombre, que no, sólo para que lo tengas en cuenta).

Agur

222
Visual Basic 6.0 e inferiores / Re: Run-time Error '20534' Error Detected By Database
« en: Viernes 19 de Noviembre de 2004, 09:49 »
Hola juravi.

El texto para un error 20354 es 'Error definido por la aplicación o el objeto', lo que quiere decir que en algún objeto que estas usando (probablemente mediante automatización) se ha producido un error inherente al propio objeto y ajeno a vb.

Con los datos que das no se puede hacer nada... Revisa tu código y algun manual o ayuda de la aplicación externa que usas.

Suerte.

223
Visual Basic 6.0 e inferiores / Re: Uso De Listas
« en: Viernes 19 de Noviembre de 2004, 09:43 »
Hola Sirespi.

Sagutxo da una opción adecuada...

Con un tipo double puedes almacenar números desde 1,79769313486232E308 a
-4,94065645841247E-324 para valores negativos y desde 4,94065645841247E-324 a 1,79769313486232E308 para valores positivos.

En una variable double ocupa en almacenamiento 8 bytes, un long tan sólo 4.
A una variable double le puedes asignar tranquilamente el valor 1.

Además de esto, sería muy buena idea utilizar como incremento para el contador un valor decimal. Para hayar la cuenta final, tan sólo habría que multiplicar el contador por la unidad seguida de tantos ceros como decimales tenga el incremento:
Código: Text
  1.  
  2. Private dContador As double
  3.  
  4. Private Sub SumaUno()
  5.    dContador = dContador + 0.001
  6. End Sub
  7.  
  8. Private Sub Resultado
  9.    MsgBox "Cuenta: " & dContador * 1000
  10. End Sub
  11.  
  12.  

Ten en cuenta que aunque utilizaras más variables, al querer sumar el contenido de una con el valor de la siguiente multiplicado por su valor máximo podrías obtener un desbordamiento de igual forma. Tendrías que usar variables (una matriz dinámica sería lo tal) de tipos más pequeños y luego mediante una función operar entre cada una para ir 'montando' el número en un string.

Chao.

224
Visual Basic 6.0 e inferiores / Re: Problemas De Asignacion Datos A Variables
« en: Viernes 19 de Noviembre de 2004, 09:27 »
Hola Jose Arriagada.

Cosas curiosas... Prueba asignado a la variable un valor con decimales:
Código: Text
  1.  
  2. Dim xValor as Double
  3. xValor = 0.0
  4.  
  5.  

Chao.

225
Visual Basic 6.0 e inferiores / Re: Timer.....
« en: Viernes 19 de Noviembre de 2004, 09:24 »
Hola.

Sobre el uso de temporizadores mediante función api:
[URL]http://foros.solocodigo.com/index.php?showtopic=8455[/URÑ]

Tal vez resulte más eficiente para facturar tiempo acorde con la realidad recuperar la hora del sistema en una variable al comenzar y en otra al finalizar, para luego con Datediff hayar la diferencia entre las dos variables. Será más exacto y no ocuparás tiempo con un timer funcionando por ahí.

Chao.

Páginas: 1 ... 7 8 [9] 10 11 ... 43