entiendo porq yo hize uno pero con el form como si fuera un grid y bueno no me da problemas pero al hacer click a donde se activa otro evento la primera vez funciona bien pero despues mientras hace el cerrado del form y se activa el otro evento pareciera q no terminara el proceso y deja la mitad del form ahi. cuando se termina la ejecucion del otro regresa al del form lo termina de cerrar y como el optro evento q uso tiene el evento repeatclick se vuelva a ejecutar y no se ve nada bien. No se como solucionar el problema por eso te pregunto sobre el metodo application.processmessages porq yo uso solo uno no se si deba colocar dos o hay otra forma de hacerlo de todas maneras aqui te paso el codigo ahi solo le faltan las coordenadas de donde se encuentra el grid pero ese funciona
procedure TFFComboBox.EjecutarEfecto(canActivate :Boolean ; pSize :Integer ; pAlign :tAlign );
var nSize: integer;
begin
nSize := 0;
while nSize < GRID_ComboBox.Height +4 do
begin
nSize := nSize + pSize;
if (nSize > GRID_ComboBox.Height +4) then
pSize := (GRID_ComboBox.Height - (nSize - pSize)) + 2;
//Formulario Activo
if canActivate = True then
begin
if not (Height > GRID_ComboBox.Height +4) then
Height := Height + pSize;
end
//oculta el formulario
else if canActivate = False then
begin
if not (Height = 0) then
begin
Height := Height - pSize;
end
end;
Application.ProcessMessages;
end;
end;
|