Использование команд относительно DBGrid из основной формы в другой форме - PullRequest
0 голосов
/ 04 мая 2011

Я делаю простую программу для использования в магазине автозапчастей.Вот как это должно выглядеть: Ссылка

Проблема в маленьком окошке слева.Он должен открываться при двойном щелчке по любой из строк в DBGrid в главном окне и отображать все характеристики выбранного элемента в полях DBEdit.Если нажать кнопку «Сохранить», она должна сохранить изменения из полей DBEdit в базе данных, но в противном случае она должна просто игнорировать изменения.

Мне удалось открыть другую форму, дважды щелкнув поле в DBGrid, используя этуcode:

    procedure TForm1.DBGrid1DblClick(Sender: TObject);
    begin
    if not Assigned(Form2)
            then Form2 := TForm2.Create(Application);
    Form2.Show;
    end;

Единственная проблема теперь заключается в том, как заставить программу определить, какая строка в DBGrid выбрана, а затем показать ее содержимое в полях DBEdit в меньшем окне.

Можеткто-нибудь подскажет, как это сделать, пожалуйста?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 04 мая 2011

Просто добавьте TDBEdits к TForm2 и подключите их к тому же DataSource, который используется DBGrid.Они будут автоматически отображать содержимое той же строки, которая выбрана в DBGrid, и вы можете редактировать или вставлять в DataSource's DataSet, и новые или измененные данные будут автоматически отображаться в DBGrid.

1 голос
/ 04 мая 2011

Есть много способов достичь этого. Я опишу два:

  • Если вы связываете DBEdits в маленьком окне с тем же источником данных, что и DBGrid, то все настроено

OR

  • Вы можете передать любую информацию внутри DBGrid1DblClick из Form1 в Form2. Эта опция сама по себе имеет много возможностей.

Обновление

Для того чтобы источник данных был виден в форме Form2, модуль, чтобы заставить модуль Form2 использовать модуль Form1.

...