Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2009-09

Función de API LockWindowUpdate para Linux

4 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Ricardo Arratia

Soy novato en la herramienta Lazarus, he programado en Delphi y me ha tocado usar la funci�n LockWindowUpdate para evitar la forma molesta de carga y dibujo de pantalla, me gustar�a saber si tengo disponible en Lazarus en alguna unidad esta funci�n en el entorno Linux (estoy programando en Linux), o si existe alguna otra funci�n que reemplace a esta y que no necesite pasar por API que complica la portabilidad de las aplicaciones.

Saludos

Ricardo Arratia Joglar ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20090907/ec9bb6c2/attachment.html>

Reply by email

JoshyFun
to Ricardo Arratia

Hello Ricardo,

Monday, September 7, 2009, 5:40:10 PM, you wrote:

RA> Soy novato en la herramienta Lazarus, he programado en Delphi y me ha tocado RA> usar la funci�n LockWindowUpdate para evitar la forma molesta de carga y RA> dibujo de pantalla, me gustar�a saber si tengo disponible en Lazarus en RA> alguna unidad esta funci�n en el entorno Linux (estoy programando en Linux), RA> o si existe alguna otra funci�n que reemplace a esta y que no necesite pasar RA> por API que complica la portabilidad de las aplicaciones.

Pero para que usas LockWindowUpdate ? Eso es para realizar drag&drop cualquier otro uso est� desaconsejado ya que el sistema s�lo puede manejar 1 ventana con esa caracter�stica. http://msdn.microsoft.com/en-us/library/dd145034%28VS.85%29.aspx

Si quieres que no se actualice la ventana depende de donde est�s dibujando, si es un paintbox o qu�, pero puedes probar a usar el "DoubleBuffer":

FormCreate(.....)
begin
  Form1.paintbox1.doublebuffered:=true;
end;

O si es el form:

Form1.DoubleBuffered:=true;

Si esto no te sirve dinos que tipo de ventana se actualiza y c�mo, y si puedes pegar un peque�o c�digo fuente de ejemplo que muestre el problema yo al menos le pegar� un ojo.

Best regards, JoshyFun

Reply by email

Ricardo Arratia
to JoshyFun

Gracias amigo por tu respuesta, cuando programaba en delphi usaba la siguiente funci�n de clases para crear ventanas:

class procedure Tf_sName.MostrarVentana(ATag : Integer);
var
 i : Integer;
 f : TForm;
begin
  LockWindowUpdate(Application.MainForm.Handle);
  try
    for i := Screen.FormCount - 1 downto 0 do begin
      f := Screen.Forms[i];
      if(f is Self) then begin
        if(f.WindowState = wsMinimized) then
          f.WindowState := wsNormal;
        f.BringToFront;
        Exit;
      end;
    end;
    f := Create(Application);
    f.Tag := ATag;
    f.Show;
  finally
    LockWindowUpdate(0);
  end;
end;

La funci�n LockWindowUpdate se usaba para evitar el feo efecto parpadeo, ahora al trasladar este c�digo a Lazarus para programar en ambiente gnome en Linux ya no dispongo de las funciones de API en Linux, porque est�s son API de Windows, por eso buscaba una funci�n alternativa para esta rutina, pero tal vez ni siquiera sea necesaria.

Gracias por tu respuesta. Bueno ser�a tener un manual de API, (si existe) para funciones del entorno gnome

Ricardo Arratia Joglar ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20090907/abcd872f/attachment.html>

Reply by email

JoshyFun
to Ricardo Arratia

Hello Ricardo,

Monday, September 7, 2009, 11:41:02 PM, you wrote:

RA> Gracias amigo por tu respuesta, cuando programaba en delphi usaba la RA> siguiente funci�n de clases para crear ventanas:

Creo entender que lo que haces es que tienes bastante ventanas y quieres mostrarlas todas delante del resto no ?

Si es as� no ser�a lo mismo que hacer "Application.BringToFront" ? Ojo, no lo he probado ni nada por el estilo.

Otra posibilidad que se me ocurre es ser�a bloquear el evento REDRAW en la ventana de la aplicaci�n, aunque no se como ahora mismo la verdad... Ma�ana intentar� hacer una prueba a ver que se me ocurre.

RA> Gracias por tu respuesta. Bueno ser�a tener un manual de API, (si existe) RA> para funciones del entorno gnome

http://library.gnome.org/devel/references.html.en

Aunque supongo que te refieres a una referencia a GTK2 no ?

Best regards, JoshyFun

Reply by email