Привіт, розглядаю цю тему - на прохання читача мого блогу. Після того, як він мені поставив запитання: як в TDBGridEh. в полях (в записах), де встановлені checkbox (прапорці). перенести в іншу таблицю. Через пару годин, я скачав останню версію бібліотеки Ehlib і встановив її. Як мені відомо, то в компоненті TDBGridEh. на відміну від того ж TDBGrid. присутній розширений функціонал. Ну що, давайте розглянемо простий приклад. А для початку сформуємо наш проект. На формі у мене такі компоненти:
Тепер, давайте створимо нашу БД, з якою ми будемо працювати. Таблиця у мене такої структури:
Тобто, зрозуміло, де у нас будуть відображатися checkboxes. там у нас тип Логічний. якщо використовувати БД MySQL. то необхідно для даного поля, вибирати тип BOOL.
Тепер давайте настроєм трохи наші компоненти. Виділяємо компонент TADOConnection і властивість LoginPromt встановлюємо в False. Потім, через властивість ConnectionString. підключаємося до нашої БД. Як це зробити, можна подивитися тут.
Далі, ми виділяємо компонент TDataSource і у властивості DataSet - вибираємо TADOQuery.
Після цього, виділяємо компонент TADOQuery і у властивості Connection - вибираємо TADOConnection. ну і нарешті виділяємо компонент TDBGridEh і у властивості DataSource вибираємо - TDataSource.
Якщо, Ви зробили все правильно, то підключення до нашої БД має працювати. Далі, виділяємо ще раз компонент TDBGridEh і натискаємо по ньому подвійним клацанням миші, після чого має з'явитися наступне вікно:
В даному вікні, ми створюємо 2 колонки (TColumns). У властивостях FieldName вказуємо - id. а другий колонки - checkbox.
Назва полів, у властивості FieldName, має збігатися - з назвою полів, в таблиці MS Access (В нашому випадку в таблиці TableTest)
У властивості checkboxes поля, в якому необхідно відображати CheckBox встановлюємо в True (в нашому випадку це поле - checkbox).
Тепер необхідно активувати нашу таблицю, для цього на подію форми OnShow напишемо наступний код:
Встановили покажчик на перший запис і вивели результат - повідомленням, у мене вийшло наступне:
Тобто, якщо покажчик встановлений, то повертатися буде True. якщо немає - False. Все просто.
При використанні БД MySQL і поля BOOL для установки прапорців. результатом буде замість True / False - значення 1 або 0. 1 - встановлений прапорець, 0 - не встановлений
Ну, а тепер, вибірка записів, у яких встановлено прапорець. Для цього, ми частково, скористаємося статтею.
Виділяємо компонент TADOQuery. у властивості Parameters - створимо новий параметр, якому у властивості Name вкажемо check. а у властивості DataType - ftBoolean. Все, тепер нам залишається написати наступний код:
Все, тепер в нашому запиті знаходяться всі поля, у яких встановлено прапорець (покажчик), і з даними записами можна робити все, що завгодно: переносити в інші таблиці, видаляти, редагувати і так далі.
Исходник, як завжди, додається, качаємо його тут (IDE Delphi 7).
Мене як то на одному форумі запитали де можна купити гру монополія. я звичайно зрозумів відразу, що це не просто гра, а ще й тренажер фортуни.