Ver Mensaje Individual
  #5  
Antiguo 18-10-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.737
Reputación: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Lo que tienes que lograr es que todos los números tengan la misma cantidad de decimales y luego utilizar este truco.
Código Delphi [-]
// Extraido de http://delphi.about.com

procedure TForm1.FormCreate(Sender: TObject) ;
begin
   ComboBox1.Style := csOwnerDrawFixed;
   //for a ListBox use "lbOwnerDrawFixed"
end;

//The OnDrawItem event handler
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
   Rect: TRect; State: TOwnerDrawState) ;
var
   x: Integer;
   txt: String;
begin
   with ComboBox1 do
   begin
     Canvas.FillRect(Rect) ;
     txt := Items[Index];
     x := Rect.Right - Canvas.TextWidth(txt) - 4;
     Canvas.TextOut(x, Rect.Top, txt) ;
   end;
end;

Para lo de los decimales mira la función Format().
Ejemplo de Delhi 6:
Código Delphi [-]
Format('%8.2f', [123.456]). 
// Esto da formato al número en el array con 8 dígitos y 2 decimales..
También se pueden agregar más elementos...
Código Delphi [-]
Format('Cantidad %d * € %8.2f = %8.2f', [12, 123.456, (12 * 123.456)])
// Esto devuelve 'Cantidad 12 * 12.45 = 1481.47'
Responder Con Cita