|
|
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
На форме Form3 помещен Grid1, DataSet которого задается программно процедурой Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. При выборе имени Grid-а на форме Form3 фокус устанавливается на ячейке первой колонки на записи, соответствующей DataSet выбранного Grid-а формы Form2. Ну а дальше начинаются пляски. При изменении фокуса Grid-а на форме Form3 (мышкой, клавиатурой) на любую ячейку, расположенную ниже предыдущей, номер записи DataSet Grid-а на форме Form3 адекватно соответствует новой выбранной ячейки. А если выбрать ячейку, расположенную выше предыдущей, изменение DataSet Grid-а на форме Form3 как бы замораживается на один выбор. Победить эти пляски не удается. Может уже кто-то побеждал? Отзовитесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2019, 12:52 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
давайте упростим ситуацию без всяких номеров записи, т.к. это штука довольно странная две формы два грида, один датасет и общий датасурс и если в одном гриде перейти на другую строку, то другой это не отобразит??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2019, 14:56 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
m830Победить эти пляски не удается. В правильно сформулированном вопросе содержится половина ответа. Вы 2 недели страдаете над двумя гридами. Вместо того, чтобы чётко сформулировать задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.06.2019, 15:54 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
krapotkin, При изменении фокуса на Grid-е Form3 адекватно изменяется фокус на Grid-е Form2 (родителе). На нем запись адекватно соответствует фокусу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2019, 07:57 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
DimaBr, Задача простая Создать форму, которая бы по горячей клавише отражала "внутренности" активной формы (заголовок, Unit, имя формы, Grid-ы на ней) и для выбранного Grid-а отражала хранимую процедуру БД и полный вынос (с Id-шниками таблиц запроса). И все. Поэтому и нужен другой Grid, который подхватывает DataSet анализируемого Grid-а и показывает полный вынос хранимки. А DataSet.RecNo не особо и нужен, нужно значение данных ячейки с фокусом. Но именно по нему я понял проблему. Обработка события изменения фокуса ячейки осуществляется процедурой Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А еще мне нужен Edit со скролингом для показа в нем Memo полей и соответствующая процедура для этого. Все, чтоя нашел в Инете меня не вдохновило. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2019, 08:24 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
m830А DataSet.RecNo не особо и нужен, нужно значение данных ячейки с фокусом. Но именно по нему я понял проблему.Какую проблему? m830 Код: pascal 1. 2. 3. 4. 5. 6. Вы, что ли DataSet.RecNo сравниваете с DBGrid.SelectedIndex и видите, что они не равны? Так они и не будут равны. RecNo - это номер записи, SelectedIndex - индекс столбца DBGrid на котором установлен фокус ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2019, 13:50 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
Проблему победил. Вместо использования OnDrawDataSel на Grid для отработки события смены ячейки использовал OnDataChange на DataSource. Мало того, что OnDrawDataSel при смене ячейки вызывается 4 раза, но и косячит с указателем на текущую запись. Более того, для исключения мерцания при многократном изменении ячеек (расчет суммы по заданному полю на клиенте), помимо отключения прорисовки Grid, временно вообще отключаю OnDataChange, а по окончании расчета восстанавливаю. Очень ускоряет расчет (практически мгновенно), т.к. у Grid-а есть связанные с ним детки с расчетом своих хранимок Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. И Frame рулит Всем спасибо за помощь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 10:56 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
m830Вместо использования OnDrawDataSel на Grid для отработки события смены ячейкиКапец! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 13:09 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
Мне вот интересно, это курсовик или работодатель дал задание ? Если второе, передайте ему мои искренние соболезнования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2019, 15:10 |
|
||
|
Фокус на ячейке Grid-а не адекватно определяет запись в его DataSet
|
|||
|---|---|---|---|
|
#18+
m830помимо отключения прорисовки Grid, временно вообще отключаю OnDataChange Откройте для себя метод DisableControls. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2019, 01:51 |
|
||
|
|

start [/forum/topic.php?fid=58&fpage=69&tid=2039306]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
85ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 238ms |
| total: | 451ms |

| 0 / 0 |
