Witam wszystkich.
Baza danych dbf, na formie kontrolka DBGrid. Edycja danych odbywa się bezpośrednio w komórkach DBGrida. W jednej z kolumn są dane typu boolean. Gdy wartość tego pola równa się false rekord można dowolnie modyfikować. Jednak gdy wartość tego pola zmieniam na true to chciałbym aby ten rekord był zablokowany przed zmianami (oprócz oczywiście pola boolean, bo zawsze mogę mieć ochotę zmienić zdanie co do tego rekordu).
Aktualnie zrobiłem coś takiego:
- wartość dgEditing dla DBGrida ustawiłem na False przez co nie mam automatycznego przechodzenia Data Seta na Edit gdy zaczynam pisać.
- w zdarzeniu OnKeyPress DBGrida wpisałem coś takiego:
if Table1.FieldByName('blokada').AsBoolean = false then
DBGrid1.SelectedField.DataSet.Edit;
czyli jak wartość pola blokada równa się false to wybrane pole można edytować.
Sprawdzam za pomocą kontrolki DBStatusLabel z komponentów RX stan bazy danych i faktycznie wszystko jest ok, czyli gdy wartość pola blokada równa się true to DataSet pozostaje w stanie Browse a gdy blokada = false i próbuje pisać to DataSet przyjmuje stan Edit.
Jedyny problem polega na tym że nie mogę wpisać żadnego znaku ani w rekordzie z wartością true ani z wartością false w polu blokada :(
Pozdrawiam
Robert