Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-03-2005
Renees Renees is offline
Miembro
 
Registrado: feb 2005
Posts: 53
Poder: 20
Renees Va por buen camino
palabras con distintos colores en listbox

Hola buenas. Para todos.

Bueno mi consulta es para saber como puedo hacer para que en un lisbox tenga cada palabra con distintos colores Ej:


1 Rene - Contador
2 Pedro - Auxiliar credito
3 Juan - Piloto

Asi quisiera que me quede mi listbox. Bueno desde ya muchas gracias y hasta luego.
Responder Con Cita
  #2  
Antiguo 31-03-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.331
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Coloca en un Form un ListBox.
Añade a la propiedad item las cdenas que comentas.
Modifica la propiedad Style a lbOwnerDrawVariable
En el evento OnDrawItem programa lo siguiente.

Código Delphi [-]
 procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
   Rect: TRect; State: TOwnerDrawState);
 var
   Str, Str1, Str2:String;
   p:Integer;
   w1, w2:Integer;
   ARect:TRect;
 begin
 
   // Cadena
   Str := ListBox1.Items[Index];
   //  Posicion del Guión
   p := Pos('-', Str);
 
   // Si el guión no está => nada...
   if (p = 0) then begin
     ListBox1.Canvas.TextRect(Rect, 0, 0, Str);
   end
   else begin
     // Calculamos las subcadenas
     Str1 := Copy(Str, 1, P - 1);
     Str2 := Copy(Str, P, Length(Str));
   end;
 
   // Calcular dimensiones de ambas
   w1 := ListBox1.Canvas.TextWidth(Str1);
   w2 := ListBox1.Canvas.TextWidth(Str2);
 
   // pintamos la primera parte
   ListBox1.Canvas.Font.Color := clRed;
   ListBox1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, Str1);
 
   // Dibujamos el segundo
   ARect := Rect;
   ARect.Left := aRect.Left + w1;
   ListBox1.Canvas.Font.Color := clBlue;
   ListBox1.Canvas.TextRect(aRect, aRect.Left, aRect.Top, Str2);
 end;

NOTA: Se basa en que hay un guión para separar ambas partes; Si no lo hay, no pintará nada.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 31-03-2005
Renees Renees is offline
Miembro
 
Registrado: feb 2005
Posts: 53
Poder: 20
Renees Va por buen camino
Item selecionado en Listbox en Color Verde

Hola Buenas para todos.

Queria Agradecer a Neftali, por la repuesta tan eficiente, muchas gracias. Anda a la perfeccion la combinacion de colores.

Una Consulta mas.
Como hago para que El item del Listbox Seleccionado en ves tener el color predeterminado (azul), salga un color verde.

Desde ya muchas Gracias.
Responder Con Cita
  #4  
Antiguo 31-03-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.331
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Añade éste cambio al pricipio del procedimiento:

Código Delphi [-]
 begin
   // Cambiar el color de los selccionados
   if (odSelected in State) then begin
     ListBox1.Canvas.Brush.Color := clGreen;
   end;
 
 ...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 31-03-2005
Renees Renees is offline
Miembro
 
Registrado: feb 2005
Posts: 53
Poder: 20
Renees Va por buen camino
borde de Listbox seleccionado de otro color

Hola Neftaldi, La ultima Consulta si seria posible, Como Hago para El color del Borde del Item seleccionado del Listo, para cambiar color, Perdon por Abuzar de tu sabiduria, Y si seria posible de donde puedo conseguir manuales para enternder el canvas. Desde Millones de gracias
Responder Con Cita
  #6  
Antiguo 01-04-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.331
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Renees
Hola Neftaldi, La ultima Consulta si seria posible, Como Hago para El color del Borde del Item seleccionado del Listo, para cambiar color, Perdon por Abuzar de tu sabiduria, Y si seria posible de donde puedo conseguir manuales para enternder el canvas. Desde Millones de gracias
Creo que ese color, al igual que la forma de pintar el borde (discontinuo) ya no es tan sencillo ya que ese coge lo definido en el sistema, y habría que realizar el repintado cuando hay un elemento seleccionado, cosa que ya no es trivial.
En cuanto al canvas, puees echarle un vistazo a la ayuda de Delphi, o a cualquier manual en los capítulos que te hablen de gráficos.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:44:31.


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
Copyright 1996-2007 Club Delphi