![]() |
No logro cambiar el color de un Item lixbox
Buenas :
LLevo unos dias intentando cambiar el color de un item de un lixbos y no lo consigo. He probado con la propiedad Canvas y na de na.... Si alguien lo ha logrado le agradeceria que me lo mostrara paso a paso Gracias |
Hola,
¿has seguido lo que te comenté en éste hilo? Quizá si pusieras el código que estás usando o más datos podríamos ver que está pasando. Saludos |
La verdad es que he mirado el ejemplo que me has dado y ciertamente nose como adaptarlo a mi problema:
El caso es que tengo una ListBox con una serie de nombres, esta lista la recorro para selecionar uno de los nombres. Una vez seleccionado el nombre quiero que se me muestre en el Lixtbox pero como "DESACTIVADO" (cambiando el color del texto ..gris claro) Creo que con ListBox.Canvas.Font.Color=clGreen podria hacerlo (no me funciona) Ademas como indico cual es el item que quiero modificar... Espero Haberme Explicado Bien Gracias |
Cita:
En el ejemplo Item hace referencia al objeto de tipo TListItem que se está dibujando, si el tercer subitem es igual a "Hola", le cambia el color... |
En primer lugar gracias Bicho por atender mi peticion
He seguido tus recomendaciones y me han surgido una seride de problemas El Evento OnCustomDrawItem en Builder no Existe Pero Existe el Evento DrawItem que supongo que es el mismo, he trabajado en este. Mi primera duda es que los cambios deben de realizarse en tiempo de ejecucion, he comprobado que cada vez que selecciono un item del ListBox no se produce el Evento DrawItem con lo cual nuca se ejecuta el codigo que me has descrito. Acontinuacion te explico un poco lo que quiero y como lo hago: La idea es que al selecionar un item de un ListBox este se "Inhabilita" una de las consecuencias es que cambie de color.. Para ello he creado un vector booleano con numero de elmentos igual al de items asi cada vez que se selecciona un Item pongo la posicion que se corresponde en el vector a false. (Hata aqui todo bien) En el Evento DrawItem he puesto la siguiente condicion: if (VectorSeleccionados[Listbox1->ItemIndex] = false) { Listbox1->Canvas->Brush->Color = static_cast(....); } Al compilar pone error : Style of funtion definition is now obsolete He probado con: Listbox1->Canvas->Font->color = clGreen ; no me da error. Se te ocurre algo Gracias. |
Yo otra vez:
He puesto la propiedad Style en OwerDrawFixed y se ha producido un cambio Ahora si realiza el Evento DrawItem (se realiza cuando se activa el TLIstBox para cada item y tambien cada vez que realizo la seleccion de un item en particular ) pero sigo teniendo un problema los items se muestran en el ListBox no se ven (son transparentes), estan hay pero no se ven. Gracias |
Cita:
// Saludos |
Por fin... Gracias Bicho
El resultado final adaptado a C++ Builder ha sido if (VectorSeleccionados[Index]== false) { ListBox->Canvas->FillRect(Rect); ListBox->Canvas->Font->Color=clGray; ListBox->Canvas->TextOut->(Rect.Left,Rect.Top,ListBox->Items-> Strings[Index]) } Todo Esto En el Evento DrawItem y con la propiedad Style en OwerDrawFixed Gracias |
La franja horaria es GMT +2. Ahora son las 09:32:23. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi