![]() |
|
|
#1
|
|||
|
|||
|
Доброго времени суток!
Уважаемые знатоки, подскажите как реализовать след. алгоритм. 1. Вставляю в listbox строки 2. Эти стоки разбиваю на столбцы, так как делается подобие кассового чека. В listboxe всё отображается как надо колонка под колонкой Пицца 1 32 105 Горячие закуски 1 32 105 А теперь вопрос, при печати печатается криво,, колонки съезжаются, кто нить сможет помочь дельным советом? |
|
#2
|
|||
|
|||
|
Использоаптть моноширинный шрифт, например courier new.
|
|
#3
|
||||
|
||||
|
Luicida Console
|
|
#4
|
|||
|
|||
|
Цитата:
Попробовал поиграться со шрифтами, не вышло, но всё равно спасибо! ))) |
|
#5
|
|||
|
|||
|
Спасибо всем откликнувшимся, разобрался. Вот код если кому то понадобиться!
Код:
const
MAX_TABS = 3;
tab = Chr(9);
var
Tabulators: array[0..MAX_TABS] of Integer;
nazvanie,naz:string; //Грид2
count:string; //Грид2
price:string; //Грид2
volume:string;
w:integer;
begin
Tabulators[0] := 110;
Tabulators[1] := 30;
Tabulators[2] := 30;
Tabulators[3] := 30;
Listbox1.TabWidth := 1;
SendMessage(ListBox1.Handle, LB_SETTABSTOPS, MAX_TABS, Longint(@Tabulators));
volume:=string(dbgrideh2.DataSource.DataSet.FieldValues['volume']);
price:=string(dbgrideh2.DataSource.DataSet.FieldValues['price']);
nazvanie:=dbgrideh2.DataSource.DataSet.FieldValues['nickname'];
count:=string(dbgrideh2.DataSource.DataSet.FieldValues['count']);
begin
if length(dbgrideh2.DataSource.DataSet.FieldValues['nickname']) < 30 then
begin
naz:=PADR(nazvanie,30);
Listbox1.Items.Add(''+naz+''+tab+''+count+''+tab+''+volume+''+tab+''+price+'');
end;
end;Последний раз редактировалось Admin, 06.02.2011 в 17:08. |
|
#6
|
||||
|
||||
|
Ну наверное можно попроще это сделать, если выставить свойства:
Код:
ListBox.TabWidth := 20; ListBox.TabStop := True; |
|
#7
|
||||
|
||||
|
Программист потому и программист, чтобы кроме него в его кодах нкто не разобрался
![]() |