Всем привет.
Помогите решить задачку:
Есть ListBox, заполненный значениями, при двойном клике вызывается форма редактирования значения выделенной строки из ListBox. Как отследить были ли изменения в ListBox или была ли измененена строка?
Заранее спасибо.
Здравствуйте, Duke_Nukem, Вы писали:
D_N>Есть ListBox, заполненный значениями, при двойном клике вызывается форма редактирования значения выделенной строки из ListBox. Как отследить были ли изменения в ListBox или была ли измененена строка?
Если я все правильно понял — что мешает сравнить строку из ЛистБокса со строкой из формы редактирования перед сохранением изменений?
Здравствуйте, DarkMaster, Вы писали:
DM>Если я все правильно понял — что мешает сравнить строку из ЛистБокса со строкой из формы редактирования перед сохранением изменений?
Может я не до конца объяснил, изменения сначала вносятся в ListBox при помощи формы редактирования, а уж затем сохраняются в базе. Отсюда и вопрос, чтобы одновлять не все записи из ListBox, а только измененные.
Привет, Duke_Nukem!
Вы пишешь 10 декабря 2004:
DN> Всем привет. DN> Помогите решить задачку: DN> Есть ListBox, заполненный значениями, при двойном клике вызывается форма редактирования значения выделенной строки из ListBox. DN> Как отследить были ли изменения в ListBox или была ли измененена строка?
Здравствуйте, Duke_Nukem, Вы писали:
D_N>Может я не до конца объяснил, изменения сначала вносятся в ListBox при помощи формы редактирования, а уж затем сохраняются в базе. Отсюда и вопрос, чтобы одновлять не все записи из ListBox, а только измененные.
Признак того, что строка изменена, можно сохранять в ListBox.Items.Objects.
Здравствуйте, Leonid Troyanovsky, Вы писали:
LT> Возможно, что пропущено некоторое звено, LT> например, ListBox д.б. OwnerDraw*. LT> Тогда, вроде, все встает на места.
Да по-моему много чего пропущено.. Если нужен трэкинг изменений, то никакой прямой связи между базой данных, формой редактирования этих данных и собственно лист-боксом быть не должно..
Как насчёт того, чтобы сделать класс, отвечающий за хранение и изменение этих самых строк? Потом же в 100 раз легче будет думать о третьей форме, которая перетасовывает этот лист-бокс или ещё чего-нибудь вытворяет
Здравствуйте, Dimonka, Вы писали:
D>Как насчёт того, чтобы сделать класс, отвечающий за хранение и изменение этих самых строк? Потом же в 100 раз легче будет думать о третьей форме, которая перетасовывает этот лист-бокс или ещё чего-нибудь вытворяет
Класс, это конечно, хорошо. Но и простой TStringList вполне годится в этом качестве.
Если, конечно, показывается только одно поле.
Понятно что TListBox никак с этим хранилищем не развязать, как собс-но, и форму
редактирования. Ну, а форме от ListBoxa нужен только индекс.
В принципе, если на той форме TEdit/TMemo об изменении данных можно узнать
и до обращения к хранилищу.
Ну, а если сделать форму редактирования модальной все совсем просто
(даже если из нее можно менять ItemIndex).