Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
Ольга   (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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.018 c
5-1112134404
Hark-al-ada
2005-03-30 02:13
2005.11.27
Как вставить контрол в пункт попап-меню?


9-1121684490
FRick
2005-07-18 15:01
2005.11.27
Шрифт ttf в GLScene!


1-1130745898
Dmitrij_K
2005-10-31 11:04
2005.11.27
прокрутка РичЕдит


2-1131522782
San1
2005-11-09 10:53
2005.11.27
FileCtrl


1-1130935096
JohnKorsh
2005-11-02 15:38
2005.11.27
Размеры формы на экране с меньшим разрешением.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский