Ver Mensaje Individual
  #2  
Antiguo 23-03-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Reputación: 17
rgstuamigo Va por buen camino
Arrow

Hola amigo MrCuCo , sería muy bueno que cuando crees un nuevo tema, pongas un TITULO más acorde al problema , claramente la Guía de Estilo lo indica, por lo cual te recomiendo leerla sino lo has hecho.
En tu caso yo hubiera colocado una título como por ejemplo:"Cambiar los item de un ListView desde un Boton", o algo similar.. Si te das cuenta el mismo título especifica claramente el problema. en cambio "Necesito ayuda" no es muy adecuado.. quizás por eso nadie te ha respondido..
De todas manera voy a tratar de ayudarte de la siguiente forma:
Segun entiendo necesitas cambiar el color de los item de tu listView pero solo cuando presiones un boton, lo que se me ocurre para ese caso es que utilizes una variable boleana global que indicará si debe o no debe cambiarse el color de los item.
Código Delphi [-]
...
...
var
  Form1: TForm1;
  Permitir: Boolean = False;{<--Esta es mi variable que indicara el cambio
 de color lo estoy inicializando en false para decir que los item no cambiaran 
 de color }
implementation
....
Ahora en el evento OnCustomDrawItem de tu ListView debes tener un código semejante a éste:
Código Delphi [-]
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
   if Permitir then // si mi varible esta es true entonces permito el cambio de color de los item
     begin
       // aqui va todo el código que cambia de color a los item del ListView
       ...
       ...
     end;
end;
.
Finalmente para permitir el cambio de color desde un boton hacemos lo siguiente:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Permitir:=True;//<-- Aquí habilito el cambio de color
ListView1.Invalidate;{<-- hago que mi ListView se repinte completamente, ésto provoca que internamente se llame 
                                al evento OnCustomDrawItem del ListView.}
end;
.
Espero que se haya entendido y te sea de utilidad..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 23-03-2010 a las 23:05:44.
Responder Con Cita