Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 29-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Cool No problem...

Cita:
Empezado por jarlos
...cuando cargo data con muchos detalles, la aplicación [n]se paraliza[/n]...
Bueno amigo jarlos... lo que sucede es bastante simple, y te lo explico; la librería que está dando soporte al .AVI (el que te permite verlo) es la winmm.dll mediante la unidad MMSystem del Delphi (si estas utilizando DirectShow es prácticamente el mismo caso)… éstas librerías son solo una interfaz que permiten al codex adecuado (como su nombre lo dice), poder decodificar el formato del .AVI y así producir los frames (cuadros de imágenes consecutivos), de video y sonido. Para realizar dichas operaciones; éstas librerías crean un grupo de hilos en el proceso que así lo solicita indirectamente. Lo que significa que tu hilo principal (el que maneja tu ventana), mientras anda ocupado comunicándose vía OLE al motor de la BD (y que en dicha acción ni si quiera le permite procesar los mensajes para refrescar la ventana), los hilos creados por el sistema multimedia se encargan de permitir al usuario visualizar el video como si estuviese “separado” del proceso afectado.

Y bueno, sin intentar dar mas vueltas en la causa, te adjunto la solución que está basada en la creación de un hilo, el cual a su ves crea una ventana del cual los mensajes son procesados en el mismo. Lo que responde exactamente a aquellos problemas causados por un hilo principal “ocupado”. El modo de empleo es simple;

Código Delphi [-]
var Rect: TRect;
begin
 Rect := BoundsRect;
 BusyStatus('Sistema ocupado, por favor espere...', @Rect);
...

Procura que la función BusyStatus sea llamada justo antes del inicio del problema, el la misma unidad "detectará" cuando debe "ocultarce", y si quieres utilizar la unidad en otros momentos te sugiero que lo utilices (por ejemplo) al momento en que esta en plena creación tu aplicación:

Código Delphi [-]
  BusyStatus('Inicializando el sistema...');
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm2, Form2);
  Application.CreateForm(TForm3, Form3);
  Application.CreateForm(TForm4, Form4);
  Application.CreateForm(TForm5, Form5);
  Application.CreateForm(TForm6, Form6);
…
  Continue;
  Application.Run;

"Función Continue, creada para aquellas aplicaciones que no utilizan GUI o cuando no funciona por no tener controles, o simplemente para asegurar un funcionamiento adecuado"

De seguro será de utilidad y una base para solucionar otro tipo de problemáticas de la misma índole.

Saludos!
Archivos Adjuntos
Tipo de Archivo: zip _Busy.zip (1,5 KB, 113 visitas)
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar form mientras se reciben datos por sockets JMGR Internet 3 23-12-2011 21:47:27
Mostrar progreso de descarga de IndyFTP con barra de progreso devicer Internet 2 05-12-2005 14:59:32
No carga el driver de conexión a base de datos oavch Internet 0 25-11-2005 18:07:32
Carga rápida de datos en Access Toñico Tablas planas 12 09-05-2005 22:04:13
Qreport 3.0 y carga de datos por pagina jgutti Impresión 0 21-04-2005 15:43:58


La franja horaria es GMT +2. Ahora son las 16:31:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi