Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 4 559

/ вопрос открыт /

Приветствую, уважаемые эксперты!
Стою перед делемой - в БД в одной из таблиц(делал через Paradox7) есть колонка с фамилиями сотрудников.нужно загружать закладки с первыми буквами этих фамилий,причем только тех которые существуют в таблице а не весь алфавит.
так как я начинающий программист, не ругайте если неправильно поставил вопрос

Степанов Дмитрий Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Степанов Дмитрий (статус: Посетитель)
Вопрос отправлен: 3 сентября 2010, 16:57
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 16; последнее сообщение — 5 сентября 2010, 00:03; участников в обсуждении: 5.
Ерёмин А.А.

Ерёмин А.А. (статус: *Администратор), 3 сентября 2010, 17:39 [#1]:

Функция SUBSTRING есть практически в любой СУБД. Название может отличаться. Вот с помощью неё и нужно выбрать все первые буквы и сгруппировать.
Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 3 сентября 2010, 17:53 [#2]:

вопрос не в этом, а в том что нужно чтобы появлялись вкладки по буквам и если нет фамилии на ,допустим, "В" , то и не должно быть такой вкладки
Вадим К

Вадим К (статус: Академик), 3 сентября 2010, 18:42 [#3]:

то есть проблема создать вкладки по известному списку букв?
Галочка "подтверждения прочтения" - вселенское зло.
Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 3 сентября 2010, 20:04 [#4]:

в том то и дело что нет.БД же будет изменяться и со временем какие-то буквы будут не нужны, а какие-то наоборот
bugmenot

bugmenot (статус: 3-ий класс), 3 сентября 2010, 20:14 [#5]:

дилеммой, facepalm
виконання програми розпочинається з того самого мiсця, де призупинилося.

Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 3 сентября 2010, 20:30 [#6]:

мы здесь не синтаксис обсуждаем
Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 3 сентября 2010, 20:51 [#7]:

".нужно загружать закладки с первыми буквами этих фамилий,причем только тех которые существуют в таблице а не весь алфавит." то есть ,доаустим, закладка "С" будет содержать все фамилии начинающиеся на "С",если не фамилий на "С" то этой закладки быть не должно
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 3 сентября 2010, 21:11 [#8]:

закладки в чем? куда должна загружаться информация? в PageControl или куда-то еще? Проблема в динамическом создании?
Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 3 сентября 2010, 21:15 [#9]:

по сути все равно куда, главное результат, я думал что загружать в TabControl.и да-проблема в динамическом создании
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 3 сентября 2010, 21:19 [#10]:

Если проблема в динамическом создании, то можно поступить, например, так (по принципу:если не знаешь как решить проблему, ищите обходные пути). При проектировании создаете вкладки со всеми буквами, на которые могут начинаться фамилии (понятно, что на мягкий знак фамилия начинаться не может). Перед чтением из БД всем вкладкам выставляете visible:=false; если буква в таблице есть, то ставим visible:=true.
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 3 сентября 2010, 21:30 [#11]:

Предвижу колкие замечания экспертов по данному совету, поэтому сразу признаю, что это не самый изящный вариант решения.
Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 3 сентября 2010, 21:58 [#12]:

это если использовать TabControl ? спрашиваю потому что не знаю как в программном коде называется вкладка, а в целом алгоритм понятен
Вадим К

Вадим К (статус: Академик), 4 сентября 2010, 00:02 [#13]:

А вкладка называется TabSheet (удивительно:)) ).
у PageControl есть свойство Pages[индекс] которое возвращает ссылку на нужную вкладку. и можно например так узнать заголовок вкладки номер2
PageControl1.Pages[1].Caption

что бы какую то вкладку сделать активной, просто используем свойство PageControl1.ActivePageIndex.

Я думаю, в данном случае это будет самое простое решение.
Галочка "подтверждения прочтения" - вселенское зло.
Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 4 сентября 2010, 19:38 [#14]:

"что бы какую то вкладку сделать активной, просто используем свойство PageControl1.ActivePageIndex."
но вкладки с включения программы итак активны

попробовал так:
PageControl1 так у меня и называется PageControl1

PageControl1.Pages[0].visible:=false;
PageControl1.Pages[1].visible:=false;
PageControl1.Pages[2].visible:=false;
....;
PageControl1.Pages[N-1].visible:=false;

так как с самого начала , предположим что база пуста, а потом начинаем их показывать в зависимости от какого-то условия при заполнении базы

... что-то не то. Всеравно все показывает все вкладки
Степанов Дмитрий

Степанов Дмитрий (статус: Посетитель), 4 сентября 2010, 20:05 [#15]:

или с самого начала не надо создавать эти вкладки. они сожет будут создаваться командой при нужном условии?и как тогда это изобразить???
допустим
<условие>
<команда добавления вкладки> - как будет выглядеть эта команда?
Вадим К

Вадим К (статус: Академик), 5 сентября 2010, 00:03 [#16]:

активной вкладкой в какой то момент времени может быть только одна вкладка. А две и более - никак. (на разных PageControl - может, но на одном - нет).
Видимая вкладка и видимый корешок вкладки - это разные вещи.

Создать новую вкладку просто.
ts:TTabSheet;
begin
ts:=TTabSheet.create(PageControl1);
ts.parent := PageControl1;
ts.caption := 'some text';
Галочка "подтверждения прочтения" - вселенское зло.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 29 марта 2023, 02:46
Выполнено за 0.02 сек.
Рейтинг@Mail.ru