Ir al contenido


Foto

[RESUELTO] Problemas con pintado de selección en Listbox


  • Por favor identifícate para responder
9 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 07 noviembre 2009 - 09:57

Pues eso amigos, estoy cambiando el color de selección del listbox, hasta ahora no tengo problemas pero..., los items no se muestran, ¿por qué?, la propiedad Style la tengo en lbOwnerDrawFixed y este es el code:



delphi
  1. procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  2.   Rect: TRect; State: TOwnerDrawState);
  3. begin
  4. with (Control as TListBox).Canvas do
  5.   begin
  6.   if (odSelected in State) then begin
  7.       Brush.Color:=clGreen;
  8.       Font.Color := clBlack;
  9.       FillRect(Rect);
  10.     end else begin
  11.       Brush.Color:=clWindow;
  12.       Font.Color := clBlack;
  13.       FillRect(Rect);
  14.     end;
  15.   end;
  16. end;



¿Alguna idea?.

Saludos.
  • 0

#2 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.007 mensajes
  • LocationMadrid - España

Escrito 07 noviembre 2009 - 01:57

¿Alguna idea?.


Si:


delphi
  1. procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  2.   Rect: TRect; State: TOwnerDrawState);
  3. begin
  4. with (Control as TListBox).Canvas do
  5.   begin
  6.   if (odSelected in State) then begin
  7.       Brush.Color:=clGreen;
  8.       Font.Color := clBlack;
  9.       FillRect(Rect);
  10.     end else begin
  11.       Brush.Color:=clWindow;
  12.       Font.Color := clBlack;
  13.       FillRect(Rect);
  14.     end;
  15.     TextOut(Rect.Left, Rect.Top, (Control as TListBox).Items[Index]);
  16.   end;
  17. end;



Saludos.
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 07 noviembre 2009 - 02:10

Excelente amigo, funciona de perlas (y) :D
  • 0

#4 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.283 mensajes
  • LocationMéxico

Escrito 07 noviembre 2009 - 02:11

Ah vaya, me has ganado amigo escafandra, como tarda en abrir mi Turbo Delphi :D :D :D :p

Salud OS
  • 0

#5 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 07 noviembre 2009 - 02:18

Por cierto, ¿sabrás como quitar el Focus Rect del listbox? ese rectangulo punteado que tiene cuando estál el foco, ¿se podrá?.
  • 0

#6 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.007 mensajes
  • LocationMadrid - España

Escrito 09 noviembre 2009 - 05:23

Por cierto, ¿sabrás como quitar el Focus Rect del listbox? ese rectangulo punteado que tiene cuando estál el foco, ¿se podrá?.




delphi
  1. procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  2.   Rect: TRect; State: TOwnerDrawState);
  3. begin
  4. with (Control as TListBox).Canvas do
  5.   begin
  6.   if (odSelected in State) then begin
  7.       Brush.Color:=clGreen;
  8.       Font.Color := clBlack;
  9.       FillRect(Rect);
  10.     end else begin
  11.       Brush.Color:=clWindow;
  12.       Font.Color := clBlack;
  13.       FillRect(Rect);
  14.     end;
  15.     TextOut(Rect.Left+2, Rect.Top, (Control as TListBox).Items[Index]);
  16.     if(odFocused in State)  then DrawFocusRect(Rect);
  17.   end;
  18. end;



Saludos.
  • 0

#7 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2009 - 05:33

¡Hostia!, eres un tolete, funciona de perlas (y)
  • 0

#8 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.007 mensajes
  • LocationMadrid - España

Escrito 09 noviembre 2009 - 05:49

¡Hostia!, eres un tolete, funciona de perlas (y)

¿tolete?  :^) esa expresión no la usamos por aquí en España.

Saludos.
  • 0

#9 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.409 mensajes
  • LocationRepública Dominicana

Escrito 09 noviembre 2009 - 06:14

Tolete = Verdugo, genio, Monstruo, Maestro, Pibe, El mejor, etc... ;)
  • 0

#10 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.007 mensajes
  • LocationMadrid - España

Escrito 09 noviembre 2009 - 06:28

Tolete = Verdugo, genio, Monstruo, Maestro, Pibe, El mejor, etc... ;)


Seguro que no :$,  8-|, :D, Gracias.

Saludos.
  • 0