27.07.2019, 16:02
|
Прохожий
|
|
Регистрация: 13.08.2017
Сообщения: 1
Версия Delphi: xe 7
Репутация: 10
|
|
Примерный ответ на первый вопрос
Код:
var
DS : TDataSource;
procedure TForm1.DBGrid1Enter(Sender: TObject);
begin
DS := DataSource1;
end;
procedure TForm1.DBGrid2Enter(Sender: TObject);
begin
DS := DataSource2;
Table1.Refresh;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
if DS = DataSource1 then //Если активно DBGrid1
begin
if Table2.RecordCount <> 0 then
if MessageDlg('Удалить все записи из таблицы Table1 и Table2?',mtCustom,[mbYes,mbNo],0) = mrNo then exit
else
begin
Table2.First; // Установка позиции курсора на начало таблицы Table2
for i := 1 to Table2.RecordCount do Table2.Delete; //цикл удаления всех записей в дочерней Table2
end;
if Table1.RecordCount <> 0 then Table1.Delete; // Далее удаление записи в главной Table1
end
else //иначе удаляем выделенную запись из таблицы Table2
if DS = DataSource2 then //Если активно DBGrid2
begin
if Table2.RecordCount <> 0 then
if MessageDlg('Удалить выделенную запись из таблицы Table2?',mtCustom,[mbYes,mbNo],0) = mrNo then exit
else
Table2.Delete;
end;
lmikle: Пользуемся тегами.
|