Да уж, перерыв вышел более долгим, чем я того планировал. Опять. Снова, то есть выпал я из колеи и сегодня в ленивом режиме пытался снова встроиться в эту колею. Пока что ничего не меняется. Ну да ладно. А что там по итогам дня. А день сегодня был не слишком продуктивным. И начался он, конечно, не с этого контрола-калькулятора, который можно увидеть на верхнем скриншоте. Сначала дня я внес небольшое дополнение в функцию своей библиотеки функций для заполнения каких-либо повторяющихся строк данных с использованием строкового шаблона. В этом шаблоне можно задать автоматическую нумерацию, генерацию случайных значений из набора символов и в числовом диапазоне. И сегодня я туда добавил возможность заполнения последовательного списка из наборов символов, где так же можно указать значение по умолчанию, если количество заполняемых строк данных превышает количество этих самых последовательностей. Вот, уже это протестировал на заполнении столбцов таблицы с помощью данного шаблона.
Потом ещё одно дело. Был там косяк с контролом, выводимом в каждой строке данных таблицы, обозначающим статус строки - "модифицирована", "не сохранена" и "помечена удаленной". Косяк заключался в том, что статус "модифицирована" задавался без непосредственной модификации пользователем содержимого ячеек. Пришлось это решать с помощью костылей. И ни как не обойтись (и тут тоже) без костыля задержки выполнения потока. Без этой штуки, честное слово, я бы не смог сделать программу. Вот почему-то никак без этого. А создание новых потоков с паузой выполнения - это затратная операция, сказывающаяся на производительности. И таких костылей я навтыкал целую кучу, чтоб её!. Пока что не смог найти более изящного решения. Да и решить полностью этот косяк со статусом, при котором в этом контроле отображается кнопка для сохранения изменений, я так до конца и не смог. Решения нет пока ввиду того, что когда начинаешь прокручивать содержимое таблицы, то в это время начинает срабатывать обработчик события изменения значения свойства объекта. А объект в данном случае - это объект строки таблицы с информацией и данными столбцов таблиц в каждой строке. И в этом обработчике как раз и меняется статус. А кроме того, внизу таблицы вылезают кнопки для сохранения или отмены изменений в таблице. Да и ещё при обновлении таблицы и закрытии окна программы вылезает диалоговое окно с оповещением о том, что в таблице имеются несохраненные данные.
Исправил косяк пока только отчасти. Нужно будет думать, что ещё можно сделать. Но идей на этот счет пока что нет. Ну и последнее. Вот начал наконец-то контрол-калькулятор. Он будет вычислять значение для строк и столбцов таблицы с применением выбранной агрегатной функции. Ну или в более продвинутом варианте - с применением сложного выражения с подстановкой данных. Начал контрол, но ещё не закончил. А ведь ещё несколько часов назад зарекался, что не закончу рабочий день, не закончив этот контрол. Но, увы, вышло как всегда. Заканчивать его буду завтра, пожалуй, ещё половину дня. Так что вот такие пироги.
Ну и уже закончу сей рабочий день. Понедельник - день тяжелый. Правда, только тогда, когда все выходные расслябляешься. Ну и теперь уже всё, до новых постов и до новых свершений.
