Hola.
Por un lado la página del enlace me pedía registro para acceder y por otro no podía abrir el adjunto.
Ahora que pude abrir y ver el adjunto, usando el primer código del mismo, creo que podes hacer de este modo:
Código PHP:
// ...
void __fastcall TForm1::FormCreate(TObject *Sender)
{
int x, y, maxLen = 0;
// hallar el texto mas largo
for (x = 0; x < MainMenu1->Items->Count; x++)
{
TMenuItem* mi = static_cast<TMenuItem*>(MainMenu1->Items->Items[x]);
for (y = 0; y < mi->Count; y++)
if (mi->Items[y]->Caption.Length() > maxLen)
maxLen = mi->Items[y]->Caption.Length();
}
// agregar 5 espacios (o los que gustes) e igualar largos
maxLen += 5;
for (x = 0; x < MainMenu1->Items->Count; x++)
{
TMenuItem* mi = static_cast<TMenuItem*>(MainMenu1->Items->Items[x]);
for (y = 0; y < mi->Count; y++)
mi->Items[y]->Caption += mi->Items[y]->Caption.StringOfChar(' ',
maxLen-mi->Items[y]->Caption.Length());
}
}
void __fastcall TForm1::Listados1DrawItem(TObject *Sender, TCanvas *ACanvas,
TRect &ARect, bool Selected)
{
TRect FocusRectBorder = ARect;
TRect FocusRectFill = ARect;
TRect TextRect = ARect;
TMenuItem *MenuItem = ((TMenuItem*)Sender);
AnsiString Text = MenuItem->Caption;
if(Text == "") return;
ACanvas->Brush->Color = MainMenuBackground;
ACanvas->FillRect(ARect);
if(Selected)
{
ACanvas->Brush->Color = BorderColor;
ACanvas->FrameRect(FocusRectBorder);
FocusRectFill.Top += 1;
FocusRectFill.Right -= 1;
FocusRectFill.Left += 1;
FocusRectFill.Bottom -= 1;
ACanvas->Brush->Color = MainMenuHighlightColor;
ACanvas->FillRect(FocusRectFill);
ACanvas->Font->Color = MainMenuHighlightTextColor;
}
else
ACanvas->Font->Color = MainMenuTextColor;
InflateRect(&TextRect,-1,-1);
DrawText(ACanvas->Handle, Text.c_str(), Text.Length(),
&TextRect, DT_SINGLELINE);
}
Resultado:
Saludos
