Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 18-10-2011
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Cómo agregar números encolumnados

Estimados miembros del club: ¿cómo hago para que al agregar números en un listbox queden alineadas las unidades correspondientes?( décimos con décimos, unidades con unidades, decenas con decenas, etc).
Muchas gracias por la ayuda que me han brindado en las preguntas anteriores.
Saludos
Carlos Alberto
Responder Con Cita
  #2  
Antiguo 18-10-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
pues no entendi...
podrias colocar un ejemplo de lo que necesitas?
o sera algo asi


Cita:
unidades Decenas centenas
....1...........2...........1
....0...........1...........0
....0...........2...........1
....3...........3...........0
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 18-10-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.462
Poder: 21
newtron Va camino a la fama
Hola.

No lo he probado pero si usas una fuente que no sea truetype y le rellenas con los espacios que se necesiten a la izquierda imagino que te dará el resultado que buscas.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #4  
Antiguo 18-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Lo más importante para que se pueda alinear es, como bién dice newtron, el tipo de fuente utilizado.
Una forma alternativa al llenado de espacios a la izquierda es usando la función Format.

Por ejemplo:
Código Delphi [-]
  with ListBox1 do
  begin
    Font.Name:= 'Courrier';
    Clear;
    Items.Add(Format('%4d',[1]));
    Items.Add(Format('%4d',[10]));
    Items.Add(Format('%4d',[10]));
    Items.Add(Format('%4d',[100]));
  end;
Un ejemplo para el caso de que fueran valores punto flotante :
Código Delphi [-]
  Format('%4.2f',[3.14]);
Mas datos en la ayuda de Delphi (Format Strings).

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 18-10-2011 a las 18:41:04.
Responder Con Cita
  #5  
Antiguo 18-10-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 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
  #6  
Antiguo 20-10-2011
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Estimado amigo del club: lo que quiero es que el punto decimal de los distintos números que introduzca quede siempre en la misma posición dentro del listbox1
Ejemplo:
12.345
-3.120
0.237
Responder Con Cita
  #7  
Antiguo 20-10-2011
CarlosAlberto CarlosAlberto is offline
Miembro
 
Registrado: ago 2010
Posts: 78
Poder: 14
CarlosAlberto Va por buen camino
Estimado amigo del club: probé y no me quedaron los puntos decimales encolumnados. Habrá otra forma de lograrlo?
Gracias.
Carlos Alberto
Responder Con Cita
  #8  
Antiguo 20-10-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Carlos.

De este modo a mi me los encolumna correctamente de acuerdo al separador decimal:
Código Delphi [-]
  with ListBox1 do
  begin
    Font.Name:= 'fixedsys';
    Items.Add(Format('%12.3f',[3.120]));
    Items.Add(Format('%12.3f',[-3.120]));
    Items.Add(Format('%12.3f',[12.345]));
    Items.Add(Format('%12.3f',[-12.345]));
    Items.Add(Format('%12.3f',[123.214]));
    Items.Add(Format('%12.3f',[-123.214]));
  end;

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿synweb como se usa y como agregar otros highlighters''? JXJ Varios 0 20-06-2010 03:59:34
Cómo convertir números a letras JKABARCA Varios 1 11-08-2008 00:20:41
Agregar numeros de una calculadora mcsebas OOP 3 09-04-2008 06:41:33
como comvertin numeros a letras pollo_c Varios 12 09-06-2007 02:31:31
Control de Numeros de Facturas al Agregar,Borrar,Guardar, ect. IcebergDelphi Firebird e Interbase 1 01-03-2004 18:03:14


La franja horaria es GMT +2. Ahora son las 23:52:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi