Въпросче за DBGrid
3 отговора
110 прегледа
Въпросче за DBGrid
Как мога да забраня в един DBGrid да се вмъкват нови записи, ако случайно натисна стрелката надолу след последния запис ? Едновременно с това искам да мога да редактирам съществуващите (т.е да не е Read-only). Например ако го свържа с DBNavigator и забраня бутончето Insert става, обаче само ако използвам TTable, а при TQuery нещо не ще.
BeforeInsert...
Ако използваш обикновения TDBGrid на делфи може би ще ти е най-лесно да си добавиш BeforeInsert евент и в него да викаш Abort. Но това ще ти попречи и програмно да добавяш записи. Най добре да го направиш с някакво флагче:
Другият вариант е да използваш някой друг грид, който има такива възможности. Например DBGridEh има пропърти AllowedOperations, от където можеш да му забраниш да се insert/append-ва.
Животът не се мери с броя вдишвания, а с моментите, които спират дъха ни!
procedure TForm1.tbDummyBeforeInsert(Sender: TDataSet);
begin
if not FInsertingRecords then
Abort;
end
...
...
FInsertingRecords := True;
try
tbDummy.Append;
...
tbDummy.Post;
finally
FInsertingRecords := False;
end;
...
...
Другият вариант е да използваш някой друг грид, който има такива възможности. Например DBGridEh има пропърти AllowedOperations, от където можеш да му забраниш да се insert/append-ва.
Животът не се мери с броя вдишвания, а с моментите, които спират дъха ни!
Re: BeforeInsert...
Абсолютно стара и изпитана практика 
с малко влакче композирам патките в реката
с малко влакче композирам патките в реката