Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-04-2011
glrjola glrjola is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 6
Poder: 0
glrjola Va por buen camino
rutina OUT32 se ejecuta siempre primero

Hola ... soy muy nuevo en esto del Delphi asi que tenganme paciencia...

probando manejar el puerto Paralelo arme unas rutinas para sacar algunos datos por LPT1 (peep3) y a su vez me grafique algunas cosas en pantalla (LuzRojaOn).

pero ponga donde ponga le rutina PEEP3 , siempre la ejecuta antes que la rutina del grafico en pantalla y queda feo... como fuera de sincronismo...
Código Delphi [-]
 
procedure Tprincipal.peep3;
begin
  Out32($37A,6);       // direccion de LPT1 Bocina on
  sleep(500);
  Out32($37A,14);       // direccion de LPT1 Bocina off
  sleep(500);
  Out32($37A,6);       // direccion de LPT1 Bocina on
  sleep(500);
  Out32($37A,14);       // direccion de LPT1 Bocina off
  sleep(500);
  Out32($37A,6);       // direccion de LPT1 Bocina on
  sleep(1000);
  Out32($37A,14);       // direccion de LPT1 Bocina off
end;
 
Procedure TPrincipal.LuzRojaOn;
begin
    AdvShape1.Appearance.Color:= clWhite;
    AdvShape1.Appearance.ColorTo:=clGray;
    AdvShape2.Appearance.Color:= clWhite;
    AdvShape2.Appearance.ColorTo:=clGray;
    AdvShape3.Appearance.Color:=$00D5D5FF;
    AdvShape3.Appearance.ColorTo:=$000000D9;
    Out32($378,4);       // direccion de LPT1
End

Puede ser que Delphi7 le asigne una prioridad mas alta o algo asi ???

no se como explicarme mejor... muchas gracias....

Última edición por ecfisa fecha: 16-04-2011 a las 04:40:12. Razón: Etiquetas [DELPHI] y [/DELPHI]
Responder Con Cita
  #2  
Antiguo 15-04-2011
glrjola glrjola is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 6
Poder: 0
glrjola Va por buen camino
agrego...

por ejemplo el la funcion LuzRojaOn se ejecuta la sentencia OUT32 antes que todos los cambios de colores.......
Responder Con Cita
  #3  
Antiguo 15-04-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Supongo que deberás poner algo para que refresque la parte gráfica antes de ejecutar Out32:

Código Delphi [-]
Procedure TPrincipal.LuzRojaOn;
begin
  AdvShape1.Appearance.Color:= clWhite;
  AdvShape1.Appearance.ColorTo:=clGray;
  AdvShape2.Appearance.Color:= clWhite;
  AdvShape2.Appearance.ColorTo:=clGray;
  AdvShape3.Appearance.Color:=$00D5D5FF;
  AdvShape3.Appearance.ColorTo:=$000000D9;
  Application.ProcessMessages; // Procesa los mensajes pendientes del sistema
  Out32($378,4); // direccion de LPT1
End

Para ahorrar tiempo en procesos que "no son los importantes" Delphi los deja para "después".
En este caso es el redibujado del formulario.
Para forzar esto, se suele utilizar Application.ProcessMessages, que ejecuta todos los mensajes pendientes antes de seguir con la ejecución del programa (redibijado, eventos de teclado, eventos de raton, etc.).

Si no quieres que el programa procese todos los eventos (puede ser lento si estás dentro de un bucle grande) puedes tratar de enviar la instruccion Repaint o Refresh.
Código Delphi [-]
  ...
  AdvShape1.Refresh;
  AdvShape2.Refresh;
  AdvShape3.Refresh;
  Out32($378,4); // direccion de LPT1
End
o
Código Delphi [-]
  ...
  AdvShape1.Repaint;
  AdvShape2.Repaint;
  AdvShape3.Repaint;
  Out32($378,4); // direccion de LPT1
End

PD. Cuando escribas código ponlo entre tags [ delphi] ... [/ delphi]

Última edición por duilioisola fecha: 15-04-2011 a las 22:45:02.
Responder Con Cita
  #4  
Antiguo 16-04-2011
glrjola glrjola is offline
Registrado
NULL
 
Registrado: abr 2011
Posts: 6
Poder: 0
glrjola Va por buen camino
Solucionado con el "Application.ProcessMessages;"

Muchas Graciassss !!!
Responder Con Cita
Respuesta



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
seleccionar el primero de cada grupo smessina MySQL 4 25-03-2010 15:25:03
¿que fue primero la gallina o el huevo? Robert01 La Taberna 0 07-03-2008 01:22:02
con breakpoint ejecuta y sin el no lo ejecuta. pacuuy Varios 1 16-12-2007 13:41:43
... a cabo primero!!! ... Jure Humor 0 15-11-2007 22:33:28
Cual leer Primero cmgenny Firebird e Interbase 7 13-11-2004 22:21:09


La franja horaria es GMT +2. Ahora son las 02:45:26.


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