Genial, me sigue mostrando el rectangulo naranja pero ahora me gusta como queda jajaja.
Antes al haber ampliado el alto de linea me seleccionaba solo digamos el texto y si seleccionaba mas de uno se quedaban espacios blancos entre ellos y ahora no pasa y ademas no necesito activar el doublebuffered con lo que es una gran mejora

.
Ahora tengo otro problema. Necesito que el Listbox siempre deje el mismo espacio en el lado derecho de la cadena mas larga. Ahora mismo lo tengo así:
Código PHP:
void __fastcall TForm1::SetScrollWidth(TListBox *lb, int WidthIcon)
{
int MaxWidth = -1;
int WidthScrollV = GetSystemMetrics(SM_CXVSCROLL);
// assign control's font to canvas
lb->Canvas->Font = lb->Font;
if(lb->Items->Count > 0){
for(int i = 0; i < lb->Items->Count; i++)
{
String text = lb->Items->Strings[i];
int len = lb->Canvas->TextWidth(text);
if(MaxWidth < len)
MaxWidth = len;
// consider non-client area
if(MaxWidth != -1){
lb->ScrollWidth = (MaxWidth + lb->Width + WidthIcon + WidthScrollV - lb->ClientWidth);
}
}
}else{
lb->ScrollWidth = 0;
}
}
Y la llamo así:
Código PHP:
SetScrollWidth(ListBoxSeleccionados, ImageListSeleccionados->Width);
El problema es que cuando muestra el scrollbar vertical hay mas espacio en blanco que cuando no aparece. Se que es una tontería pero me gustaria saber como solucionarlo. Gracias.