136
Ваши вопросы / Re: Вопрос при написании скрипта
« : 04 Октября 2020, 02:51:19 »
Здравствуйте.
После выбора строки из более длинного списка и обновлении списка на более короткий, переменная индекса выбранной строки (авто-генерируемая или основная) сохранила значение и стала указывать на несуществующую строку списка.
Для указания индекса следует явно использовать основную переменную и обнулять при выполнении процедуры Clear:
При удалении строк из списка может возникнуть аналогичная ситуация - пустая строка выбора, причем основная переменная-индекс после удаления строки перестает быть непрерывной. Так что для исключения "артефакта пустой строки" при удалении строк наиболее приемлемый способ это полная перезапись списка с коррекцией переменной-индекса.
Посмотреть поведение списков с переменной и авто-переменной можно в проекте из вложения.
После выбора строки из более длинного списка и обновлении списка на более короткий, переменная индекса выбранной строки (авто-генерируемая или основная) сохранила значение и стала указывать на несуществующую строку списка.
Для указания индекса следует явно использовать основную переменную и обнулять при выполнении процедуры Clear:
Код: (delphi)
. . .
comboBoxIdDriver.Clear; // очищаем список список
comboBoxIdDriverIndex.Value := 0; // устанавливаем индекс выбранной строки на начало списка
. . .
Посмотреть поведение списков с переменной и авто-переменной можно в проекте из вложения.