Главная страница
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.071 c
9-1121006782
grouzd[E]v
2005-07-10 18:46
2005.11.27
glBindTexture


14-1131436146
Ozone
2005-11-08 10:49
2005.11.27
Физика.... Задачи.... (2й курс)


2-1131373422
Makxi
2005-11-07 17:23
2005.11.27
Service Application &amp; Delphi 6,7


3-1129372829
Иванов__
2005-10-15 14:40
2005.11.27
Как можно выгрузить данные в dbf?


14-1130827728
igi
2005-11-01 09:48
2005.11.27
Регулярные выражения