Saludos
Estoy usando Delphi 2010. Tengo un control TComboBox en el cual implemento un evento
OnDrawItem. La idea es mostrar cierta cosa cuando se despliega la lista, y otra cuando la lista esta cerrada
Este es mi codigo:
Código Delphi
[-]
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState);
var
LText: string;
begin
if Index = -1 then
Exit;
LText := ComboBox1.Items[Index];
if odComboBoxEdit in State then
HacerAlgoConElTexto(LText);
ComboBox1.Canvas.FillRect(Rect);
ComboBox1.Canvas.TextOut(Rect.Left + 2, Rect.Top, LText);
end;
Esto funciona muy bien y el efecto logrado es el deseado. El problema que tengo es que al cambiar el Combo a
csOwnerDrawFixed pierdo la parte de edicion. Es decir, no se permite introducir algun texto cualquiera, estoy forzado a seleccionar solo una de las opciones del combo
Y si vuelvo a la propiedad Style a
csDropDown, pierdo el OwnerDraw
Hay alguna solucion? O tengo que buscar otra alternativa / componente?
Saludos y gracias