Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Nelly
Зарегистрирован: 07.06.2006 Сообщения: 7
|
Добавлено: Чт Ноя 16 2006 11:03 Заголовок сообщения: Работа с TListBox и TEdit в C++Builder |
|
|
Помогите, есть две проблемы:
1. Как можно задать для Edit-а маску ввода даты (**.**.****)? Как проверить, что были введены цифры, а не буквы?
2. Как в ListBox-е работать с колонками? Для создания колонок нужно присвоить св-ву Columns кол-во колонок, но как с ними работать дальше, т е добавлять и извлекать значения? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Чт Ноя 16 2006 20:55 Заголовок сообщения: |
|
|
Ну, во-первых, для ввода по маске используется не TEdit, а TMaskEdit. Во-вторых, TListBox разбивает строки на колонки, но их индексы сохраняются. То есть, так:
Индекс 0 Индекс 4 Индекс 8
Индекс 1 Индекс 5 Индекс 9
Индекс 2 Индекс 6
Индекс 3 Индекс 7
По этим индексам и обращаешься к строкам. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Nelly
Зарегистрирован: 07.06.2006 Сообщения: 7
|
Добавлено: Пт Ноя 17 2006 10:59 Заголовок сообщения: |
|
|
Спасибо, с Edit –ом разобралась. А вот с ListBox-ом сложнее. У меня такая задача: мне нужно вывести в ListBox данные: ФИО человека и его должность в одну строку, но в разные столбцы сразу и так, чтобы при выборе пользователя ФИО и должность воспринималась как единая строка а получается, что сначала планка «бегает» по ФИО, а затем по должностям. И возможно ли установить размер для каждой колонки и сделать границу столбцов видимой? Возможно ли это организовать с помощью лист бокса или нужно использовать что-то другое? Если можно, то пример с кодом я ж ведь начинающая! |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Dimasm
Зарегистрирован: 25.04.2005 Сообщения: 454
|
Добавлено: Сб Ноя 18 2006 00:27 Заголовок сообщения: |
|
|
нуЛеди... ListBox вам не очень подходит, единственное если сделать 1 столбец, шрифт - пропорциональный, например Courier New а строку формировать в таком виде
Код: | ListBox1->Items->Append("----------------+----------------------");
ListBox1->Items->Append(" ФИО | Должность");
ListBox1->Items->Append("----------------+----------------------");
ListBox1->Items->Append("Иванов И.И. | Бухгалтер");
ListBox1->Items->Append("Петров С.С. | ст.Экономист");
ListBox1->Items->Append("----------------+----------------------"); |
это, наверное немного изврат... поэтому
вам необходим TStringGrid
для заполнения StringGrid1->Cells[1][2] = "Hello";
1- столбец
2- строка
побалуйтесь ещё с такими свойствами
Код: | StringGrid1->Cells[1][3] = "Hello";
StringGrid1->ColCount = 30;
StringGrid1->RowCount = 10;
StringGrid1->ColWidths[2] = 5;
StringGrid1->RowHeights[2] = 5;
StringGrid1->FixedCols = 2; |
сделаейте новый проект, воткните туда StringGrid и кнопочку
в кнопочку вставьте выше приведённый код и поэксперементируйте с разными значениями. _________________ С уважением Dimasm |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Пн Ноя 20 2006 01:54 Заголовок сообщения: |
|
|
Каждому свое. Я в подобных ситуациях использую TListView. Контрол, конечно, мощноватый для простой таблицы, но конечному пользователю более привычный и знаком по Проводнику и множеству стандартных виндоузских программ и утилит. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Nelly
Зарегистрирован: 07.06.2006 Сообщения: 7
|
Добавлено: Пн Ноя 20 2006 13:42 Заголовок сообщения: |
|
|
Спасибо большое, действительно решила с ListBox-ом не связываться. Мне больше всего подходит TListView, только вот никак не могу извлекать из него значения. Я программно создаю столбцы, строчки, добавляю значения, но никак не могу из заданного столбца и заданной строчки получить значения.
Помогите справиться ! |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Пн Ноя 20 2006 17:50 Заголовок сообщения: |
|
|
Дело в том, что заголовком каждой строки является текст первого столбца такой строки. Остальные столбцы по задумке разработчиков контрола - второстепенные. Поэтому обращение к значению первого столбца отличается от обращения к другим.
ListView1->Items->Item[n]->Caption
Это текст заголовока строки n (первый столбец).
ListView1->Items->Item[n]->SubItems->Strings[x]
Начиная со второго столбца, значения хранятся в виде TStrings (свойство SubItems). Strings[0] - это текст первого второстепенного столбца (то есть, второго от самого начала). Strings[1] - текст второго и т.д.
Удачи! ![Wink](images/smiles/icon_wink.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Nelly
Зарегистрирован: 07.06.2006 Сообщения: 7
|
Добавлено: Вт Ноя 21 2006 09:17 Заголовок сообщения: |
|
|
Большое СПАСИБО!!!! Всё получилось, я оч рада ![Laughing](images/smiles/icon_lol.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Mytilus Galloprovincialis
Зарегистрирован: 30.08.2005 Сообщения: 358 Откуда: откуда все люди родятся
|
Добавлено: Вт Ноя 21 2006 23:04 Заголовок сообщения: |
|
|
Кстати, для ввода даты, помимо TMaskEdit, удобно использовать TDateTimePicker. Ну, это так... Для справки. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|