![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Cita:
// Saludos |
|
#2
|
|||
|
|||
|
Muchas gracias. Ya lo había hecho antes, pero es que me petaba diciendome que la declaración no coincidía con la anterior. Con 'la anterior' se refería a la declaración original del componente. Después de investigar un poco he visto que la declaración tenía una variable Control que sobraba. Una vez la he quitado, he overrideado la procedure y le he eliminado el 'with (Control as TListbox)' del principio ya funciona 100%.
Salludos del elfo. |
|
#3
|
|||
|
|||
|
si tu problema es que quieres que cada fila te aparezca de un color diferente el texto lo que necesitas es colocar la propiedad Style a lbOwnerDrawFixed y en el evento OnDrawItem poner este codigo
with (Control as TListBox) do begin if Odd(Index) then Canvas.Font.Color := clBlue else Canvas.Font.Color := clGreen; Canvas.Rectangle(Rect); Canvas.TextOut(Rect.Left, Rect.Top, Items[Index]); end; |
|
#4
|
|||
|
|||
|
Si, básicamente es lo que quiero. Pero como no quiero tener que acordarme del código en el onDrawItem, decidí hacerlo en un componente derivado de un TListBox, pero que ya tuviera el código insertado. Así no me tengo que preocupar más del asunto. En lugar del TBListBox original uso el mio, que ya hace todo el royo.
En principio remodelar el TListBox es para hacerlo más específico. De momento solo lo voy a usar en una aplicación que estoy haciendo, pero en un futuro pretendo usarlo en otras relacionadas. Gracias por tu código. Si te fijas, el mio es muy similar. El problema es que si hago un override del DrawItem, no puedo usar 'Control', ya que no está en la declaración original de la procedure. Aparece cuando haces doble click sobre "onDrawItem". De todas formas, no importa, ya que al ser un componente, puedo acceder directamente al canvas sin hacer 'with'. Y por cierto, un error que me da otro componente al leer desde un fichero: I/O error 6 He buscado en la ayuda y no lo encuentro. He encontrado el 106... ¿es el mismo? El 6 dice que no estoy leyendo bien (por ejemplo leer un word de un file of byte), pero yo creo que si que leo como toca. Tengo que revisar el código pero ¿se os ocurre porque sale este error normalmente? Gracias Saludos del elfo |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|