Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Работа с DBGrid (редактирование данных строки)


Автор: rs1c 9.8.2009, 21:23
Есть DBGrid при клике на строку открыть новое окно с возможностью редактирования данных этой строки или только просмотра.
На новой форме все элементы уже есть.

Подскажите как это можно реализовать?.

Спасибо.

Автор: Frees 10.8.2009, 07:18
Цитата(rs1c @  10.8.2009,  00:23 Найти цитируемый пост)
На новой форме все элементы уже есть.

а какие там у тебя элементы TDBEdit?

сделай им один общий ДатаСоурсе и после создания указывай ему датасет из грида

Автор: defmzk 10.8.2009, 07:30
Код

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
   FormEdit.Showmodal;
end;


Из датасурса к DBgrid'у берешь Id поля, а в другой форме в своем датасурсе переходишь на это поле, либо же связываешь одним датасурсом обе формы.

Автор: former 10.8.2009, 10:04
rs1c, вынеси все компоненты связанные с доступом к БД к от дельный DataModul. Подключи его в юнитах тех форм, в которые он должен использоваться. И обращайся к DataSet-ам, как < Имя DataModul>.<Имя DataSet>.

Автор: Frees 10.8.2009, 11:50
офф
former,  дата модуль это конечно хороше но что это даст кроме посути ненужног датамодуля и проблем связанных с использования общих дата сетов


Автор: former 10.8.2009, 12:13
Frees, представь себе, что DataSet, допустим, 20-30.  В этом случае, когда несколько форм используют один и тот же DataSet, может возникнуть путаница, тем более если форм тоже не мало. А так все централизовано. Еще это удобно, когда доступ идет через сервер приложений.
Использование DataModul позволяет осуществлять обработку событий, исключений и т.д. и т.п. в отдельном модуле и не смешивать код формы с этими обработчиками.
Цитата(Frees @  10.8.2009,  11:50 Найти цитируемый пост)
проблем связанных с использования общих дата сетов

Каких проблем?

Автор: Frees 10.8.2009, 12:20
2 формы списка с одним общим дата сетом. меняем текущую запись в первой форме во 2 форме текущая запись тоже меняется т.к. дата сет 1


Автор: former 10.8.2009, 12:27
Frees, если так, то конечно. Но автор поста говорит про конкретную запись, переход по которым не осуществляется в форме редактирования.

Автор: Frees 10.8.2009, 12:30
former,  я к тому что дата модуль ему не нужен можно дата сет на форме держать и передавать его форме редактирования

либо как сказал defmzk, передавать ИД, (ИМХО) так правельнее будет 

Автор: former 10.8.2009, 12:36
Frees, я не говорю, что так не правильно. В данном случае может и не стоит усложнять, и предложенных тобой и defmzk шагов достаточно. Но знаешь как бывает, сегодня в приложении две формы, а завтра уже 20-30.  smile Поэтому рано или поздно начинаешь задумываться как это все систематизировать. Каждый  решает сам.

Автор: rs1c 10.8.2009, 21:36
Цитата(defmzk @ 10.8.2009,  07:30)
Код

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
   FormEdit.Showmodal;
end;


Из датасурса к DBgrid'у берешь Id поля, а в другой форме в своем датасурсе переходишь на это поле, либо же связываешь одним датасурсом обе формы.

Сделал как "defmzk" -  все получилось - именно то, что и хотел получить...! smile  Спасибо огромное

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)