PDA

Ver la Versión Completa : Ingresar datos en un listbox a la derecha


CarlosAlberto
20-10-2011, 17:10:14
Estimados miembros del Club:¿cómo puedo ingresar datos en un listbox y que se ubiquen en el margen derecho de éste?
Gracias y saludos
Carlos Alberto

Caro
20-10-2011, 17:22:35
Hola CarlosAlberto, puedes utilizar el evento OnDrawItem de tu Listbox y la función DrawText para dar formato al texto:


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
aItem : String;
begin
aItem := ListBox1.Items[Index];
DrawText(ListBox1.Canvas.Handle, PChar(aItem), StrLen(PChar(aItem)), Rect, DT_RIGHT);
end;


La propiedad Style del ListBox en lbOwnerDrawFixed.

Saluditos

Caminante
20-10-2011, 17:38:59
En el listbox pon la propiedad style en lbOwnerDrawFixed y en el evento ondrawitem pon esto


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
VAR
Texto :string;
begin
with Tlistbox(Control)do
begin
Texto:=items[index];
canvas.FillRect(rect);
inflaterect(rect,-2,-2);
drawtext(canvas.Handle,pchar(texto),-1,rect,DT_RIGHT or DT_VCENTER)
end;


Espero que te sirva.

Saludos

CarlosAlberto
21-10-2011, 13:59:13
Estimado Caminante: funcionó lo de colocar el texto numérico en el margen derecho pero los números se ven cortados por la mitad en cada fila del Listbox. Se ve el número de la mitad para arriba. ¿Cómo lo soluciono?

CarlosAlberto
21-10-2011, 14:10:54
Estimada Caro: los códigos que me enviaste funcionó bien.
Muchas Gracias.
Saludos.
Carlos Alberto
Paraná - Entre Ríos - Argentina