Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con Application.ProcessMessages (https://www.clubdelphi.com/foros/showthread.php?t=65868)

jandro 18-01-2010 22:27:54

Problema con Application.ProcessMessages
 
Hola a todos.

Resulta que tengo un Memo con un listado de personas y lo que quiero es que cuando pulse en uno se vea un panel con su foto durante 3 seg.
El tema es que lo hace todo bien, pero cuando termina de hacerlo el cursor del raton cambia como si estuviera arrastrando solito. Como si hubiera pulsado y arrastrado para cambiar items :S

Alguien se le ocurre que puede ser??

Aqui les dejo el codigo:
Código Delphi [-]
  PanelFoto.Visible:=true;

  Milisegundos:=3000; // 3 Seg. Para en el futuro poder configurarlo en preferencias

  ATickCount := GetTickCount + Milisegundos;
  while ATickCount > GetTickCount do
    Application.ProcessMessages;

    PanelFoto.Visible:=false;
Muchas gracias.
P.D.: Se que hay una forma para que el codigo salga bonito pero no recuerdo como era. :)

cocute 19-01-2010 00:01:06

si es un listado siempre te quedará mejor con un listbox o un listview que con un memo, aparte que manejaras mejor los datos

genius 19-01-2010 12:23:37

Pon esto al final de tu codigo..

Código Delphi [-]
 
Screen.Cursor := crDefault;

cloayza 19-01-2010 15:03:14

Como dice cocute, tambien creo que seria mejor usar un TListBox...

Aqui escribi un pequeno codigo que hace algo parecido...

Muestra un panel mientras el item del TListBox tiene el foco en algun elemento.

Código Delphi [-]
procedure TForm1.ListBox1Click(Sender: TObject);
begin
      panelfoto.caption:=ListBox1.Items[ListBox1.ItemIndex];
end;

procedure TForm1.ListBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  APoint: TPoint;
  Index: integer;
begin
     APoint.X:=X; APoint.Y:=Y;
     Index:= ListBox1.ItemAtPos(APoint, True);
     If Index>-1 then
     begin
          ListBox1.ItemIndex:=Index;
          ListBox1Click(Sender);
     end;
     panelfoto.visible:=Index>-1;
end;

Solo es otra idea...Saludos

jandro 19-01-2010 22:24:34

El tema de usar un memo era porque en cada items tiene la foto en miniatura delante de cada normbre, y creo que con el TListBox no fui capaz de hacerlo. Ahora estoy fuera de casa pero cuando vuelva lo revisare.

Y con la solucion aportada cambiaria el cursor, pero tambien cambiaria la opcion de arrastrar y soltar?

Muchisimas gracias.

jandro 21-01-2010 15:36:14

Hola de nuevo, lo he revisado y efectivamente no es un memo si no un TListBox.

Ahora lo que sigo sin saber por que cuando uso esa sentencia es como si comenzara a arrastrar??? Alguien me puede echar una mano!

Gracias.


La franja horaria es GMT +2. Ahora son las 11:42:06.

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