Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 10-09-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Si quieres dibujar un rectángulo debes de usar Rectangle, ya que DrawFocusRect siempre se dibuja igual independiente de los valores que asignes al canvas. Por otro lado no hace falta que crees un Pen y Canvas nuevos cada vez, sobre todo porque luego no los destruyes y quedan en memoria. Bueno yo lo haría así:

Código Delphi [-]
procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
  Rect: TRect; State: TOwnerDrawState);
begin
  with Control as TListBox do
  begin
    // Usamos el Brush y el Pen del propio canvas
    Canvas.Brush.Style := bsSolid;
    Canvas.Pen.Style := psSolid;
    Canvas.Pen.Color := clRed;
    Canvas.Pen.Width := 1;
    
    // Aqui compruebo si esta seleccionado
    if odSelected in State then
    begin
      // Si lo esta dibujo un rectangulo, el borde con el valor de Pen
      // y el interior con el valor de Brush
      Canvas.Brush.Color:= clGray;
      Canvas.Rectangle(Rect);
    end else
    begin
      // Si no lo esta solo dibujo el interior con el valor del Brush
      Canvas.Brush.Color:= clWhite;
      Canvas.FillRect(Rect);
    end;

    Canvas.Font.Color := clBlack;
    Canvas.TextOut(Rect.Left + 1, Rect.Top + 1, Items[Index]);
  end;
end;
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
cambiar nombres Cosgaya Varios 1 22-11-2005 16:13:42
Cambiar una constante D@byt Varios 3 24-05-2005 16:03:11
cambiar registro JoseQ Varios 6 22-07-2004 20:00:00
Cambiar el wallpaper soul6301 Varios 1 30-05-2004 16:40:23
Cambiar el directorio de la BD marys Conexión con bases de datos 1 18-06-2003 12:29:17


La franja horaria es GMT +2. Ahora son las 12:07:40.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi