Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

Формирование строки   Найти похожие ветки 

 
Ольга   (2005-11-07 14:02) [0]

Мне нужно сформировать строку, состоящую из 2 строк произвольной длины - код (<=10 символов) и наименование, чтобы это в ListBox-е выглядело как 2 ровненьких столбца.
Делаю так, добавляю к первой строке пробелы, чтобы получилось 12 символов, потом добавляю вторую строку:

 While not Query1.Eof do
 begin
   ListBox.Items.AddObject(Query1.FieldByName("Code").AsString+
                          StringOfChar(" ",12-length(Query1.FieldByName("Code").AsString))+
                          Query1.FieldByName("Name").AsString,
                  pointer(Query1.FieldByName("id_graf").AsInteger));
   Query1.Next;
 end;

Получаются 2 кривокосеньких столбца, т.к. ширина символов разная.
Можно, наверное, определить ширину каждого символа и наворотить расчет по пикселям...
А может это делается совсем по-другому и я зря копья ломаю?


 
Anatoly Podgoretsky ©   (2005-11-07 14:06) [1]

Используй шрифт Courier New


 
Sergey13 ©   (2005-11-07 14:07) [2]

2Ольга   (07.11.05 14:02)
А может отказаться от ListBox-а? Чем грид например не катит?


 
Ольга   (2005-11-07 14:13) [3]

Грид, конечно, катит. Но не хочется переделывать работающую программу.
А что в Courier New все символы одной ширины? Сейчас попробую. Переделка меньшей кровью.


 
Sergey13 ©   (2005-11-07 14:15) [4]

2[3] Ольга   (07.11.05 14:13)
А у тебя программа по работе с БД на ListBox сильно завязана? Странно.
Хочешь подпорки ставить - дело твое.


 
Ольга   (2005-11-07 14:29) [5]


> Sergey13 ©

А почему странно? В ListBox вывожу информацию из БД, а потом в -дцати местах обращаюсь к ListBox-у, чтобы считать, что выбрал пользователь.
Ну, а по сути проблемы, вы правы. Поменяла шрифт - столбики ровные, но Courier New вносит дисонанс в общую картинку интерфейса, т.к. шрифт задается пользователем и только ListBox этому не подчиняется. Нехорошо, буду переделывать.


 
Anatoly Podgoretsky ©   (2005-11-07 14:32) [6]

Ольга   (07.11.05 14:29) [5]
Тогда как сказали какой ни будь грид - отличное решение и позволяет расширить функциональность.


 
Sergey13 ©   (2005-11-07 14:52) [7]

2 [5] Ольга   (07.11.05 14:29)
>А почему странно? В ListBox вывожу информацию из БД, а потом в -дцати местах обращаюсь к ListBox-у, чтобы считать, что выбрал пользователь.

Потому и странно. Ты фактически копируешь выборку и держишь в памяти 2 копии одного и того-же. Пустая трата получается. Тогда как грид - это просто отображение первоисточника (датасета).


 
Ольга   (2005-11-07 16:14) [8]


> Sergey13 ©   (07.11.05 14:52) [7]

2 копии одного и того-же я не держу, т.к. ADOQuery сразу после заполнения ListBox-а освобождаю для дальнейшей работы. Как правило, я использую одну компоненту ADOQuery, считываю информацию из выборки в объекты и дальше работаю с ними. Есть свои плюсы и минусы в таком подходе программирования, я пока плюсов вижу больше.


 
Sergey13 ©   (2005-11-07 16:25) [9]

2[8] Ольга   (07.11.05 16:14)
> Есть свои плюсы и минусы в таком подходе программирования, я пока плюсов вижу больше.
Опубликуешь список плюсов? Вот например минус я вижу уже в том, что надо перегонять инфу из датасета в "объеты". А плюсы пока что-то не усматриваю.

А вообще - дело твое.


 
Amoeba ©   (2005-11-07 18:00) [10]

Плюсы в таком подходе напрочь отсутствуют.



Страницы: 1 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
9-1121172680
Trof
2005-07-12 16:51
2005.11.27
Poser и анимация.


6-1124370571
Andy K
2005-08-18 17:09
2005.11.27
INDY, перекодировка KOI8-R в cp1251


14-1131013239
konda
2005-11-03 13:20
2005.11.27
редактирование PDF


9-1121120467
Conferno
2005-07-12 02:21
2005.11.27
Ode или Newton в GLScene?


14-1131002413
MBo
2005-11-03 10:20
2005.11.27
Пятничные задачки. Повтор нерешенного, и кое-что новое...