Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Necesito ayuda (https://www.clubdelphi.com/foros/showthread.php?t=67002)

MrCuCo 23-03-2010 19:39:16

Necesito ayuda
 
Se que puedo cambiar el color de un Item de un Listview con el evento CustomDrawItem, pero como hago para llamar ese evento desde un boton?, osea que a la hora que yo presione el boton los Items cambien de color?

Gracias. :)

rgstuamigo 23-03-2010 22:54:02

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":o:o 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...:)

MrCuCo 24-03-2010 03:35:39

Muchas muchas gracias! si me sirvio, y perdon por lo del titulo :D


La franja horaria es GMT +2. Ahora son las 16:23:42.

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