Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Внизодин DBNavigator для нескольких таблиц БД Найти похожие ветки
← →
Azat (2004-12-30 07:51) [0]Уважаемые мастера. Можно ли использовать один DBNavigator для нескольких таблиц БД на одной форме и если можно то как? Я пробовал:
procedure TForm3.DBGrid3CellClick(Column: TColumn);
begin
DBNavigator1.DataSource:=DataModule2.pumpSource
end;
procedure TForm3.DBGrid4CellClick(Column: TColumn);
begin
DBNavigator1.DataSource:=DataModule2.paramSource
end;
но вторую таблицу не цепляет
← →
Sergey_Masloff (2004-12-30 08:37) [1]Я твой код не понимаю.
И что такое "не цепляет таблицу" тоже
Можно сделать что-то в этом роде:
На OnEnter DBAware контролов повесить обработчик примерно такого содержания:
........
var
PropInfo: PPropInfo;
........
PropInfo:= GetPropInfo(Sender.ClassInfo,"DataSource");
if Assigned(PropInfo) then
begin
YourNavigator.DataSource := TDataSource(GetOrdProp(Sender, PropInfo));
Будешь всегда редактировать что надо
← →
DSKalugin © (2004-12-30 11:14) [2]Обрабатывай событие DBGrid.OnEnter
procedure TForm3.DBGrid4Enter(Sender: TObject);
begin
DBNavigator1.DataSource:=DBGrid4.DataSource
end;
← →
Rule © (2004-12-30 11:27) [3]изврат какойто, а зачем это нада ?
← →
Sergey13 © (2004-12-30 11:35) [4]Мне тоже не совсем нравится подход через OnEnter грида. Узер может туда и не тыкаться, а сразу в нафигатор. Съэкономить на нафигаторе можно, если гриды гарантировано не показываются вместе. Например лежат на разных шитах пейджконтрола.
← →
stud © (2004-12-30 11:39) [5]дык и смысл навигатора? для перемещения по гриду хватает и клавиш управления курсором - лишний элемент
← →
Rule © (2004-12-30 11:57) [6]Sergey13 © (30.12.04 11:35) [4]
Например лежат на разных шитах пейджконтрола
ну тогда можно положить на каждый пейдж по навигатору, не так он много то и ресурсов ест ...
stud © (30.12.04 11:39) [5]
на любителя, я привык
← →
Sergey13 © (2004-12-30 11:59) [7]2[6] Rule © (30.12.04 11:57)
Это да, но если шибко хочется, то можно и съэкономить. 8-)
← →
Sergey_Masloff (2004-12-30 12:05) [8]Sergey13 © (30.12.04 11:35) [4]
>Мне тоже не совсем нравится подход через OnEnter грида.
А зря. Потому что формы на которых данные десятка датасетов нужны вижу постоянно а форма с десятком навигаторов...
А если он ентер не будет то он ничего и не отредактирует потому что изменить что-то в контроле не войдя в него нельзя. А изначально у навигатора DataSource = nil
Ну честное слово - ОФИГЕННО удобно.
Более того, у себя я эти ссылки датасорсов передаю в дочерние формы что тоже часто удобно.
А вообще прав Rule © (30.12.04 11:57) [6] в том смысле что все на любителя.
← →
Sergey13 © (2004-12-30 12:22) [9]2[8] Sergey_Masloff (30.12.04 12:05)
>А изначально у навигатора DataSource = nil
Так это до первого использования.
>все на любителя.
Кто бы спорил. 8-)
← →
msguns © (2004-12-30 13:14) [10]Для централизации управления датасетами (гридами):
- MDIForm с панелью управления + MDIChild с датасетами и гридами
- ActionList в MDIForm с обработчиками
- Сообщения от Гл.формы активной при соотв.экшинах, которые объявляются и обрабатываются "дочками" либо интерфейс
Для "дочек" базовая форма с обработкой типовых событий (AfterScrool, BeforeInsert, ...) существенно упростит процесс разработки, особенно когда датасетов/гридов может быть много (например, справочники).
ИМХО, в большинстве случаев существенно удобнее как модальных форм, так и пэйджкотнролов, т.к. позволяют видеть одновременно несколько таблиц, формочки с которыми можно удобно расположить относительно друг друга при работе.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.034 c