CPU not found. Press any key to continue
Використовуйте подія OnDataChange об'єкта Datasource, з'єднаного з DBGrid. Якщо параметр State в обробнику подія дорівнює dsBrowse, значить ви перейшли в новий рядок (або тільки що відкрили таблицю).
Чому сітка не підтримує таку подію? Оскільки сітка може бути не єдиним елементом управління, оторбажающім дані з поточного рядка і може бути не єдиним елементом, що дозволяє здійснювати переміщення від рядка до рядка. За допомогою Datasource обробка події здійснюється централізовано.
Я не впевнений в тому, що проблему можна вирішити, обробляючи подія одинарного клацання, для відстеження події зміни рядків я рекомендую використовувати подія TDatasource.OnDataChange, а для колонок - TDBGrid.OnColEnter / Exit.
Особисто я користуюся наступного робочого технологією:- Для того, щоб виявити зміни поточного рядка, скористайтеся подією TDataSource OnDataChange. OnDataChange виникає під час переміщення або клацанні на іншому рядку. Обробник події може виглядати приблизно так:
де Field є колонкою, де відбулася зміна.
Поля TTable можуть використовуватися для порівняння поточних вибраних рядків полів (ключ) до ваших вимог. З тією ж метою можна використовувати і властивість TDBGrid Fields. Для прикладу:
Коли вибирається інша колонка іншого рядка, ви отримуєте події OnColExit, OnColEnter і OnDataChange.
При зміні осередку ви отримуєте потік подій, тому вам потрібно якимось чином їх фільтрувати.
Щоб мати доступ до індексу рядка або колонки вибраної комірки, ви повинні успадкувати ваш клас від TCustomGrid і опублікать властивості часу виконання Row і Col (поточні рядок і колонка сітки, не таблиці !!):
у відповідній процедурі або обробнику події здійсните приведення типу:
з чого я можу зробити висновок, що ви повинні це зробити програмним шляхом. Маємо на увазі, що сітка вже існує, і у вас є доступ до основної таблиці TTable:
Можуть бути помилки, але це повинно допомогти.
Подивіться на наступний код, він може вам допомогти. Він бере у елемента управління свойст 'Name' і поміщає його в властивість 'Caption' мітки.