FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Cita:
|
#2
|
||||
|
||||
Hola Nerox.
Te muestro como podes ajustar la cantidad de veces por segundo que deseas que se dispare el evento con bastante márgen:
Ejemplo de uso:
Saludos. Edito: Casi me olvido... ¡ Bienvenido a Club Delphi !
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 14-05-2013 a las 20:57:16. |
#3
|
||||
|
||||
Impresionante ejemplo
|
#4
|
||||
|
||||
ecfisa,
Excelente Nelson. |
#5
|
||||
|
||||
Solamente puedo decir +1
__________________
La Madurez se llama... ~~~Gaia~~~ |
#6
|
|||
|
|||
Saludos ecfisa.
Muchas gracias el código funciono. |
#7
|
|||
|
|||
Necesito me aclaren que estoy haciendo mal
Gracias por al ayuda, esta muy buena la clase que propuso ecfisa, pero no logro que me funcione como necesito, quizas es que estoy haciendo algo mal o omitiendo algo, pudieran ayudarme.
Básicamente lo que necesito es que en lo que se va procesando el procedmiento ProcessFile, me actualice los contadores en pantalla (Label0000 hasta Label2110), pero no lo hace, solo cuando hago clic en el label para detener el hilo es que se ejecuta todo. de lo contrario nunca termina y le tengo puesto a la clase F835File la propiedad EndParse que inicia en falso y cuando termina el proceso toma el valor verdadero, para poder tener referencia que terminó el proceso. La duración de este proceso depende del tamaño del fichero que estoy procesando y me ha durado entre 30seg hasta 2 minutos en los casos que tengo como refrencia. Código:
procedure TForm1.TimeThreadOnTime; begin // aquí el proceso que desees Inc(FCont); if FStopThread = false then begin FStopThread := true; ProcessFile; end; Label0000.Caption := IntToStr(F835File.Loop0000MaxId); Label1000.Caption := IntToStr(F835File.Loop1000MaxId); Label2000.Caption := IntToStr(F835File.Loop2000MaxId); Label2100.Caption := IntToStr(F835File.Loop2100MaxId); Label2105.Caption := IntToStr(F835File.Loop2105MaxId); Label2110.Caption := IntToStr(F835File.Loop2110MaxId); // fin proceso Application.ProcessMessages; if F835File.EndParse then StopThread; end; procedure TForm1.ProcessFile; begin if FileExists(FFileName) then begin F835File.Parse; if F835File <> nil then begin LabelLoop0000.Caption := IntToStr(F835File.Loop0000MaxId); LabelLoop1000.Caption := IntToStr(F835File.Loop1000MaxId); LabelLoop2000.Caption := IntToStr(F835File.Loop2000MaxId); LabelLoop2100.Caption := IntToStr(F835File.Loop2100MaxId); LabelLoop2105.Caption := IntToStr(F835File.Loop2105MaxId); LabelLoop2110.Caption := IntToStr(F835File.Loop2110MaxId); scMemoSchema.Lines.AddStrings(F835File.getSqlSchema); scMemoDelete.Lines.AddStrings(F835File.getSqlDelete); scMemoInsert.Lines.AddStrings(F835File.SqlData); scMemoFileParser.Lines.AddStrings(F835File.ParsedFile); scMemoLogError.Lines.AddStrings(F835File.LogError); end; end; end; procedure TForm1.BeginThread; begin if not Assigned(TimeThread) then begin FCont := 1; TimeThread:= TTimeThread.Create; // Intervalo expresado: 1/1000000 seg. (µs) TimeThread.Interval := 100000; {1/10 seg } TimeThread.OnTime := TimeThreadOnTime; TimeThread.Execute; end; end; procedure TForm1.StopThread; begin if Assigned(TimeThread) then TimeThread.Terminate; end; procedure TForm1.scLabel21Click(Sender: TObject); begin StopThread; end; |
#8
|
||||
|
||||
Hola Badillo.
No puedo saber que hace la clase F835File, pero por lo que comentas mas abajo: Cita:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 06-03-2024 a las 17:51:42. |
#9
|
|||
|
|||
Gracias, estoy fuera de casa por problemas de salud, en cuanto pueda pruebo lo que me recomiendas. La clase F835file lo único que hacer un parseo de un fichero de tipo EDI y pasar la información a sqlserver, por eso demora un poco ese proceso.
Muchas gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Timer | coso | Trucos | 1 | 14-07-2008 10:28:56 |
Timer | comba | OOP | 3 | 18-06-2007 16:54:00 |
Timer | nenufer | Varios | 7 | 10-05-2006 16:35:17 |
Timer | ojimenezg2000 | Gráficos | 10 | 27-04-2006 14:56:02 |
timer +1 | slim jim | Varios | 4 | 02-10-2005 04:03:11 |
|