Редагування в StringGrid
Завдання просте - потрібно щоб в StringGrid після зміни значення комірки (при виході з режиму редагування, або втрати фокусу StringGrid "ом) виконувалася якась процедура.
OnSetEditText спрацьовує при кожному новому символі :( а потрібно тільки при завершенні редагування.
Пробував виставляти прапор в OnSetEditText і обробляти в OnDrawCell - теж не підійшло, тому що працює з глюками - якщо при редагуванні осередку додаток стало неактивним (вискочило віконце аськи, користувач запустив якийсь додаток) і потім стало знову активним, то OnDrawCell спрацює, хоча редагування і не було завершено.
А як би ти визначив закінчення процесу редагування осередку?
Незнаю, ось я і питаю, як його визначити;)
OnDrawCell спрацьовував при переході в інший осередок і при завершенні редагування.
Обробляй OnKeyDown, де тв визначиш какоя клавіша натиснута і є чи натискання цієї клавіші ознакою закінчення редагування.
А якщо користувач не клавішею а мишею пішов з поля?
Подивися реалізацію класу TInplaceEditor, воно повинно підштовхнути тебе в потрібну сторону. Після закінчення редагування едітор посилає повідомлення грід
OnSetEditText- початок (процес) редагування
OnSelectCell, onExit - закінчення редагування
А взагалі OnSetEditText відбувається при зміні рядка і (!) При закінченні редагування - ти можеш запам'ятовувати поточну редаговану рядок і при виникненні OnSetEditText без зміни рядка - вважати що редагування закінчено.
ОК, дякую. щас ще трохи повожу з ним. якщо не вийде -брошу, зроблю по-іншому.
який дятел придумав цей стрінггрід. вже скоко знайомих людей з ним страждало, і ні у кого не вийшло то чого хотіли. і я увійшов в їх ряди. це так, думки вголос.
> Вже скоко знайомих людей з ним страждало
- исходники є - спадщина, розширюй функціональність. Хіба хто заважає?
> Який дятел придумав цей стрінггрід
- по швидкому зліпити фронт-ендік - дуже корисна річ.
Пам'ять: 0.73 MB
Час: 0.045 c