компонент для вывода таблицы |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
компонент для вывода таблицы |
IUnknown |
15.11.2012 15:02
Сообщение
#21
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
С событиями все нормально. Просто достаточно было включить опцию goEditing у гридов, чтобы всё заработало как нужно. Но твой код прямо образец того, как не надо делать. Я не удержался и чуть-чуть его сократил (на самом деле, от него может остаться половина того, что есть сейчас). Смотри:
Сокращённый вариант (Показать/Скрыть)
|
marwell |
15.11.2012 15:36
Сообщение
#22
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
спасибо!
насчет кода, ты прав, там очень много чего можно упростить, укоротить, да и улучшить. К сожалению, мне такое пока не дается, код выходит громоздкий, не оптимизированный. Пытаюсь работать над этим |
marwell |
4.12.2012 15:47
Сообщение
#23
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
пришлось опять поднять эту тему)
у комбобоксов не работает колесо прокрутки, если количество строк довольно большое и, что интересно, DropDownCount ставлю например 20, а комбобокс все равно раскрывает список на максимум (на сколько позволяет экран вообще), и без колеса прокрутки никак не доступны элементы, "не влезшие" туда |
marwell |
4.12.2012 20:26
Сообщение
#24
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
и вопрос номер 2:
необходимо, чтобы при ручном изменении значения одной из двух, или же обеих ячеек, пересчиталось значение другой ячейки делаю так: при начале редактирования ячейки запоминаю координаты и старое значение, потом при получении фокуса ввода другой ячейкой пересчитываю новое значение procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol, но что то делаю неправильно... Сообщение отредактировано: marwell - 4.12.2012 20:28 |
IUnknown |
6.12.2012 1:49
Сообщение
#25
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
Цитата и, что интересно, DropDownCount ставлю например 20, а комбобокс все равно раскрывает список на максимум А где ты, интересно, ставишь DropDownCount? Неужели через свойства Object Inspector-а? Оно ж у тебя выставляется в коде, 74 и 77 строкой (в коде из поста №18), а у меня в 21-ом посте - строкой №101. Если заменяю у себя 101 строку наcbx.DropDownCount := 10; // Rows;, то показывает ровно 10 строк с прокруткой... Цитата но что то делаю неправильно... Угу. А ничего, что у тебя на OnSelectCell навешено другое событие, которое показывает комбобокс в ячейке? Ты его куда дел? А в моем коде StringGrid1SelectCell вообще не будет вызываться, поскольку обработка выбора переназначена другому событию... В общем, ты лучше тестовый проект выложи, а то ты там постоянно что-то меняешь, а потом вопросы задаешь, ничего не объясняя. Тут каждый символ важен, не то что куски кода в сотни строк... |
marwell |
6.12.2012 11:28
Сообщение
#26
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
А где ты, интересно, ставишь DropDownCount? Неужели через свойства Object Inspector-а? Оно ж у тебя выставляется в коде, 74 и 77 строкой (в коде из поста №18), а у меня в 21-ом посте - строкой №101. Если заменяю у себя 101 строку на cbx.DropDownCount := 10; // Rows;, то показывает ровно 10 строк с прокруткой... Угу. А ничего, что у тебя на OnSelectCell навешено другое событие, которое показывает комбобокс в ячейке? Ты его куда дел? А в моем коде StringGrid1SelectCell вообще не будет вызываться, поскольку обработка выбора переназначена другому событию... В общем, ты лучше тестовый проект выложи, а то ты там постоянно что-то меняешь, а потом вопросы задаешь, ничего не объясняя. Тут каждый символ важен, не то что куски кода в сотни строк... даже не знаю, как я мог упустить этот момент |
marwell |
6.12.2012 12:40
Сообщение
#27
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
|
IUnknown |
6.12.2012 17:01
Сообщение
#28
|
a.k.a. volvo877 Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: 627 |
К сожалению, тот форум сбоит, но он тебе советовал не OnGetEditText, а OnSetEditText, насколько я успел увидеть...
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;прекрасно пересчитывает данные. Только убери этот дурацкий ShowMessage('Calculate'), он всё портит... |
marwell |
6.12.2012 17:09
Сообщение
#29
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
К сожалению, тот форум сбоит, но он тебе советовал не OnGetEditText, а OnSetEditText, насколько я успел увидеть... procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer;прекрасно пересчитывает данные. Только убери этот дурацкий ShowMessage('Calculate'), он всё портит... спасибо Цитата Только убери этот дурацкий ShowMessage('Calculate'), он всё портит... я это приписал так, только чтоб увидеть заходит ли туда вообще ... |
marwell |
30.01.2013 14:03
Сообщение
#30
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
доброго времени суток, форумчане
вот уж никак не думал что придется продолжить эту тему... но у самого реализовать "это" не получается в общем, есть две таблицы stringgrid, для вывода данных из excel в ячейки этих grid'ов помещены combobox'ы. При щелчке по строке grid'a раскрывается список и после выбора вставляется содержимое. Мне необходимо несколько изменить этот процесс - надо чтобы на строчке grida при наведении мышки появлялась кнопка, при нажатии на которую раскрывался бы список, а если щелкать просто по строчке, то можно вручную вписывать значения. Пытаюсь использовать StringGridMouseMove, при наведении мышки кнопка действительно перемещается, но ее почему то не видно, как будто она оказывается за таблицей. Прилагаю 123.rar ( 248.3 килобайт ) Кол-во скачиваний: 805 архив с исходниками, буду признателен за совет |
marwell |
1.02.2013 12:45
Сообщение
#31
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
ответили на другом форуме
надо было в качестве parent у speedbutton указывать не форму, а grid |
Гость |
13.03.2014 23:17
Сообщение
#32
|
Гость |
|
Текстовая версия | 8.11.2024 0:24 |