Michail |
Отправлено: 04.06.2004, 13:34 |
|
Не зарегистрирован
|
Реально сделать выпадающий список из ячейки TStringGrid ? |
|
AVC |
Отправлено: 04.06.2004, 13:40 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Да |
|
Michail |
Отправлено: 04.06.2004, 13:44 |
|
Не зарегистрирован
|
.... , а как ? |
|
olegenty |
Отправлено: 04.06.2004, 13:50 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
1. создавать комбу, рисовать её поверх ячейки, а после выбора передавать значение комбы в ячейку. в качестве постижения основ работы VCL — невредное занятие, очень развивает
2. воспользоваться TAdvStringGrid, где всё это вшито в самую середину
|
|
Michail |
Отправлено: 04.06.2004, 14:15 |
|
Не зарегистрирован
|
...........
case VK_SPACE:
{
if(Shift.Contains(ssCtrl)&&grFields->Col==2)
{
TRect rect;
rect=grFields->CellRect(grFields->Col,grFields->Row);
lbxTypes->Top=(rect.top)+grFields->Top;
lbxTypes->Left=(rect.left)+grFields->Left;
lbxTypes->Visible=true;
lbxTypes->SetFocus();
}
}break;
.......
о как ! |
|
MDM |
Отправлено: 08.06.2004, 09:32 |
|
Не зарегистрирован
|
QUOTE (olegenty @ 04/06/2004, 14:52) | 1. создавать комбу, рисовать её поверх ячейки, а после выбора передавать значение комбы в ячейку. в качестве постижения основ работы VCL — невредное занятие, очень развивает
2. воспользоваться TAdvStringGrid, где всё это вшито в самую середину |
1. Так делать не надо т. к.:
- ComboBox будет смотреться в ячейке довольно по "уродски" из-за своего бордюда (или надо переустановить стиль бордюра);
- при нахождении ComboBox-а в нижних ячейках выпадающий список будет "съеден" гридом (или нужно устанавливать стиль WS_POPUP).
- выбор значения возможен только из выпадающего списка.
Нужно сделать следующее:
- создать форму со стилем WS_POPUP, без кнопок макс/мин и т. п. Это будет основа для выпадающего списка на которую можно будет поместить не только ListBox, но и TreeView, ListView и вообще несколько елементов;
- кнопку выпадающего списка нужно просто нарисовать (все состояния нет/нажата/отжата);
- отображать форму при MouseDown на кнопке выпадающего списка
и т. д.
2. пользоваться TAdvStringGrid не нужно слишком "жирный". Если есть исходный код, то можно посмотреть как у них сделано и повторить у себя. |
|
Gedeon |
Отправлено: 08.06.2004, 10:22 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
QUOTE (MDM @ 08/06/2004, 10:34) | QUOTE (olegenty @ 04/06/2004, 14:52) | 1. создавать комбу, рисовать её поверх ячейки, а после выбора передавать значение комбы в ячейку. в качестве постижения основ работы VCL — невредное занятие, очень развивает
2. воспользоваться TAdvStringGrid, где всё это вшито в самую середину |
1. Так делать не надо т. к.:
- ComboBox будет смотреться в ячейке довольно по "уродски" из-за своего бордюда (или надо переустановить стиль бордюра);
- при нахождении ComboBox-а в нижних ячейках выпадающий список будет "съеден" гридом (или нужно устанавливать стиль WS_POPUP).
- выбор значения возможен только из выпадающего списка.
Нужно сделать следующее:
- создать форму со стилем WS_POPUP, без кнопок макс/мин и т. п. Это будет основа для выпадающего списка на которую можно будет поместить не только ListBox, но и TreeView, ListView и вообще несколько елементов;
- кнопку выпадающего списка нужно просто нарисовать (все состояния нет/нажата/отжата);
- отображать форму при MouseDown на кнопке выпадающего списка
и т. д.
2. пользоваться TAdvStringGrid не нужно слишком "жирный". Если есть исходный код, то можно посмотреть как у них сделано и повторить у себя. |
По поводу 1 — как юзать стандартные элементы — выбор конкретно самого разработчика.
По поводу 2 — жирность не всегда помеха, тут надо на ТЗ смотерть .
И вообще вопрос был задан без конкретного уточнения на какие-либо ограничения, поэтому я не вижу смысла в столь категоричных заявлениях, как у Вас.
|
|
MDM |
Отправлено: 08.06.2004, 10:52 |
|
Не зарегистрирован
|
QUOTE (Gedeon @ 08/06/2004, 11:24) | По поводу 1 — как юзать стандартные элементы — выбор конкретно самого разработчика.
По поводу 2 — жирность не всегда помеха, тут надо на ТЗ смотерть .
И вообще вопрос был задан без конкретного уточнения на какие-либо ограничения, поэтому я не вижу смысла в столь категоричных заявлениях, как у Вас. |
1. Ответ на вопрос:
- Можно-ли создать в ячейке TStringGrid выпадающий список?
- Да.
Скажем так — не полный. Тем более если нет ограничений, если есть отвечай по существу.
2. Обещаю больше не трогать TAdvStringGrid. |
|