![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 12
|
![]()
Добрый день. Помогите плиз. как можно реализовать открыввающийся список для ячейки в sringrid. заранее благодарю
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 13.01.2009
Сообщений: 1,353
|
![]()
Попробуйте скомпоновать стринггрид и комбобокс, поищите в свойствах стринггрида свойство выделенное красным, и если в его выпадающем списке будет присутствовать комбобокс, отмечайте его, и проверьте запустив программу.
P.S. Всего лишь предположение.
"Тебе то может на меня и насрать, но твои глаза меня обожают!"
![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 10.06.2010
Сообщений: 225
|
![]()
а просто listbox какой-нибудь замутить никак??
зачем обязательно делать через стринггрид?что за жестокие ограничения?:
За помощь: Нажмите на весы слева от сообщения!
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 12
|
![]()
Спасибо за внимание но не получается к сожалению((
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 12
|
![]()
мне нужно подобие таблице с изменяемым количеством строк, а для одного столбца возможность выбора значения для ячейки из списка. как иначе организовать как не в stringgride незнаю
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 12
|
![]()
ааааа все вопрос закрыт
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 12
|
![]()
вот такой возможен вариант решения.....
procedure TForm1.FormCreate(Sender: TObject); begin {Высоту у combobox не получится установить, поэтому мы будем} {подгонять размер у грида под размер combobox!} StringGrid1.DefaultRowHeight := ComboBox1.Height; {Скрываем combobox} ComboBox1.Visible := False; end; procedure TForm1.ComboBox1CloseUp(Sender: TObject); begin {Получаем выбранный элемент из ComboBox и помещаем его в грид} StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex]; ComboBox1.Visible := False; StringGrid1.SetFocus; end; procedure TForm1.ComboBox1Exit(Sender: TObject); begin {Получаем выбранный элемент из ComboBox и помещаем его в грид} StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row] := ComboBox1.Items[ComboBox1.ItemIndex]; ComboBox1.Visible := False; StringGrid1.SetFocus; end; procedure TForm1.StringGrid1SelectCell(Sender : TObject; Col, Row: Integer; var CanSelect: Boolean); var R: TRect; begin SGWriteRead.SendToBack; if ((Col = 3) AND (Row <> 0)) then begin {Размер и расположение combobox подгоняем под ячейку} R := StringGrid1.CellRect(Col, Row); R.Left := R.Left + StringGrid1.Left; R.Right := R.Right + StringGrid1.Left; R.Top := R.Top + StringGrid1.Top; R.Bottom := R.Bottom + StringGrid1.Top; ComboBox1.Left := R.Left + 1; ComboBox1.Top := R.Top + 1; ComboBox1.Width := (R.Right + 1) - R.Left; ComboBox1.Height := (R.Bottom + 1) - R.Top; //Определяем индекс ComboBox1.ItemIndex := ComboBoxNumIndex(StringGrid1.Cells[3, ARow], ComboBox1.Items.Text); //Показываем СomboBox ComboBox1.Visible := True; ComboBox1.SetFocus; end; CanSelect := True; end; // Ставим ComboBox в позицию текста который отбражен в StringGrid-е Function ComboBoxNumIndex(TextGrid, TextCombo : String): Integer; var NumIndex: Integer; begin NumIndex := 0; while Pos(#13#10, TextCombo) <> 0 do begin if Copy(TextCombo, 0, Pos(#13#10, TextCombo)-1) = TextGrid then break else begin NumIndex := NumIndex + 1; TextCombo := Copy(TextCombo, Pos(#13#10, TextCombo)+2, Length(TextCombo)); end; end; ComboBoxNumIndex := NumIndex; end; |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 10.06.2010
Сообщений: 225
|
![]()
эм, сделай допустим такую штуку
на двойной щелчёк по ячейки всплывала новая форма с нужным компонентом будь то listbox или что либо другое. форму естественно делаешь маленькую и все.
За помощь: Нажмите на весы слева от сообщения!
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 23.04.2010
Сообщений: 12
|
![]()
я сначала хотел так сделать но решил остановится на combobox-е. так вроде не плохо. осталось картинки впихнуть как нибудь
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
объясните StrinGrid | magnat1991 | Общие вопросы C/C++ | 9 | 26.04.2010 14:50 |
StrinGrid в Delphi | TaYgA | Помощь студентам | 8 | 19.10.2009 17:17 |
StrinGrid | Настенька..Блонди | Общие вопросы Delphi | 2 | 15.08.2009 16:45 |
Задача со StrinGrid-ом | artemavd | Общие вопросы Delphi | 10 | 28.07.2009 16:23 |