Редагування в stringgrid

Редагування в StringGrid

Завдання просте - потрібно щоб в StringGrid після зміни значення комірки (при виході з режиму редагування, або втрати фокусу StringGrid "ом) виконувалася якась процедура.
OnSetEditText спрацьовує при кожному новому символі :( а потрібно тільки при завершенні редагування.
Пробував виставляти прапор в OnSetEditText і обробляти в OnDrawCell - теж не підійшло, тому що працює з глюками - якщо при редагуванні осередку додаток стало неактивним (вискочило віконце аськи, користувач запустив якийсь додаток) і потім стало знову активним, то OnDrawCell спрацює, хоча редагування і не було завершено.

А як би ти визначив закінчення процесу редагування осередку?

Незнаю, ось я і питаю, як його визначити;)
OnDrawCell спрацьовував при переході в інший осередок і при завершенні редагування.

Обробляй OnKeyDown, де тв визначиш какоя клавіша натиснута і є чи натискання цієї клавіші ознакою закінчення редагування.

А якщо користувач не клавішею а мишею пішов з поля?

Подивися реалізацію класу TInplaceEditor, воно повинно підштовхнути тебе в потрібну сторону. Після закінчення редагування едітор посилає повідомлення грід

OnSetEditText- початок (процес) редагування
OnSelectCell, onExit - закінчення редагування
А взагалі OnSetEditText відбувається при зміні рядка і (!) При закінченні редагування - ти можеш запам'ятовувати поточну редаговану рядок і при виникненні OnSetEditText без зміни рядка - вважати що редагування закінчено.

ОК, дякую. щас ще трохи повожу з ним. якщо не вийде -брошу, зроблю по-іншому.
який дятел придумав цей стрінггрід. вже скоко знайомих людей з ним страждало, і ні у кого не вийшло то чого хотіли. і я увійшов в їх ряди. це так, думки вголос.

> Вже скоко знайомих людей з ним страждало
- исходники є - спадщина, розширюй функціональність. Хіба хто заважає?
> Який дятел придумав цей стрінггрід
- по швидкому зліпити фронт-ендік - дуже корисна річ.

Пам'ять: 0.73 MB
Час: 0.045 c

Схожі статті