Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-12-2004
neon neon is offline
Miembro
 
Registrado: jul 2004
Posts: 62
Poder: 20
neon Va por buen camino
Dibujar imagen con ImageList en StringGrid

Hola,

quiero poder dibujar un icono almacenado en un imagelist en un StringGrid en tiempo de ejecución. El StringGrid tiene asociado un pop-up, y al seleccionar un item de este pop-up me debe dibujar el icono en una determinada columna.
El problema esta en que al no realizar esto en el evento on draw tengo una serie de problemas para calcular la posicion deseada y para que lo pinte inmediatamente.
Lo hago de la siguiente forma :

ImageList5.Draw(StringGrid1.Canvas, x, y, 1)
Responder Con Cita
  #2  
Antiguo 20-12-2004
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.275
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
Debes utilizar el evento DrawCell para pintar la celda, ya que es el adecuado para ello; En todo caso en el PopupMenu lo que debes hacer es activar/desactivar un flag que te marque si se pinta el bitmap o no.

En el DrawCell coloca un código como éste:
Código Delphi [-]
var
  bmp:TBitmap;
begin
  //Flag para saber si pinto la imagen (iniciualmente FALSE)
  if (not MustPintar) then begin
    Exit;
  end;
  // Coumna que quiero pintar
  if (ACol <> 1) then begin
    Exit;
  end;
 
  // Crear
  bmp := TBitmap.Create();
  // proteccon
  Try
    // Asignar la imagen
    ImageList1.GetBitmap(0,bmp);
    // pintarla
    StringGrid1.Canvas.Draw(Rect.Left + 2, Rect.Top + 2, bmp);
  finally
    bmp.Free;
  end;

Luego en tu popupmenu añades un código como éste:

Código Delphi [-]
  MustPintar := not MustPintar;
  StringGrid1.Repaint;
__________________
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 09:36:56.


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