Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.15;
Скачать: CL | DM;

Вниз

ДГрид ДублКлик вызываю модальную форму и тут не то что надо   Найти похожие ветки 

 
Alik$ ©   (2003-08-25 12:09) [0]

С ДБГрида вызываю модальную форму SHowModal т.е. окно редактирования и мне надо что форма открывало текущую запись а моя форма открывает первую строку ДБГрида как быть?


 
Алексей Петухов   (2003-08-25 12:15) [1]

Если разные наборы, то Locate


 
stud ©   (2003-08-25 12:47) [2]

так у тебя курсор на какой записи при открытии формы?


 
Alik$ ©   (2003-08-25 14:05) [3]

На первой строке так ведь при вызове форма открывает только с первой строки...


 
Hawk2 ©   (2003-08-25 14:22) [4]

Тогда переходи на нужную запись (вручную или програмно как получится), а потом вызывай форму для редактирования и читай значения полей и записывай в Едиты или как ты там делаешь, только нд не переоткрывай :-)


 
Alik$ ©   (2003-08-25 15:00) [5]

Вручную неоченьто удобно для пользователя вернее нет смысла открывать модальную форму. А вот как програмно реализовать проблема с Locate пробовал что-то не переходит.


 
Alik$ ©   (2003-08-25 15:01) [6]

и Ещё ведь мне надо вызвать с ДБгрида мадальную и чтоб где строка просмотра кликает клиент выводился форма для редактирования.


 
Hawk2 ©   (2003-08-25 15:05) [7]

Alik$ © (25.08.03 15:00) [5]> Вручную неоченьто удобно для пользователя вернее нет смысла открывать модальную форму.
Смысл есть, в форме удобнее редактировать, есть подсказки, можно контролировать вводимые данные и т.д., а в Гриде можно запретить редактирование и все.

>А вот как програмно реализовать проблема с Locate пробовал что-то не переходит.
Как-то не приходилось сталкиваться.


 
MsGuns ©   (2003-08-25 15:13) [8]

Делеашь так:
При клике на гриде основного НД, делаешь:
1) В глоб.переменную записываешь значение поля - указателя на справочник или 0, если НД пустой
2) Даешь ShowModal форме, на которой грид с НД справочника.
3) В событии OnShow формы со справочником:
- переоткрываешь датасет справочника
- анализируешь переменную (см.п.1). Если ноль, то ничего не делаешь, если >0, то Locate по полю идентификатора справочника
4) В гриде справочника разрешаешь редактирование/вставку/удаление одиночной записи. Лучше всего это делать по спец.кнопкам, а редактить давать не в гриде, а в контролах, не связанных с DB, и расположенных на отд.панельке, "высвечиваемой" при нажатии узером соотв. кнопки ("Добавить", "Править"). При добавлении (узер ввел и нажал соотв.кнопку на панели ввода-редакт-я) делаешь все необходимые проверки новой записи, затем в блоке Try Except добавляешь запись и, если Ok, то новый идентификатор помещаещь в ту же глоб.переменную, где было "стартовое" значение, а форму закрываешь.

По такой схемке можно стряпать даже правку иерархических справочных зависимостей.

Хотя, ИМХО, для справочников лучше использовать MDI-форму с возможностью редактить любой справочник в любой момент времени. (По типу окон в вордах)


 
Hawk2 ©   (2003-08-25 15:25) [9]

А разве автор вопроса спрашивал о редактировании справочников? Причем здесь они?


 
MsGuns ©   (2003-08-25 16:19) [10]

>Hawk2 © (25.08.03 15:25) [9]
>А разве автор вопроса спрашивал о редактировании справочников? Причем здесь они?

Понятие "справочник" употреблено как средство отличить таблицы в контексте данной проблемы (основная и дополнительная в мод.окне)
То, что между этими таблицами существует некая связь (даже только логическая), ИМХО, из сабжа видно достаточно отчетливо.


 
Hawk2 ©   (2003-08-25 16:40) [11]

MsGuns © (25.08.03 16:19) [10]
Пречитав Ваше предидущее сообщения еще раз 5 (наверное плохо соображаю), я так понял что открывается та самая таблица еще раз, только во время открытия производится переход на нужную запись, но зачем все эти муки? Ведь для автора вопроса в том и есть проблема как осуществить переход. И вообще он уже куда-то пропал.


 
MsGuns ©   (2003-08-25 16:45) [12]

>Hawk2 © (25.08.03 16:40) [11]

Наверное, я плохо излагаю ;((( Ессно, таблицы, отображаемые в гриде основной формы и в гриде модальной - разные. Именно поэтому я употребил слово "справочник", чтобы с одной стороны, явно разделить эти таблицы, а с другой - подчеркнуть их зависимость
ЗЫ. Хочется верить, что Вами руководит здоровое любопытство, а не желание постебаться.


 
Hawk2 ©   (2003-08-25 17:03) [13]

>ЗЫ. Хочется верить, что Вами руководит здоровое любопытство, а не желание постебаться.

Я знаю что Вы на этом форуме можно сказать один из старейшин (так как заглядываю сюда уже 2,5 года и Ваш ник вижу уже здесь давно), а я уважаю умных людей и у меня нет желания постебаться, просто как я понял из вопроса автору нужно было просто редактировать запись в открытом НД, но не напрямую в гриде, а отдельно в форме. Ну да ладно с этим вопросом, мы ведь всеравно не уточним, автор не отзывается.


 
Dred2k ©   (2003-08-25 20:59) [14]

> Alik$ © (25.08.03 15:01) [6]
> и Ещё ведь мне надо вызвать с ДБгрида мадальную и чтоб где
> строка просмотра кликает клиент выводился форма для редактирования.


Просто не создавай в модальной форме TTable или TQuery. Кинь на форму TDataSource, его и поставь всем компонентам редактирования. А перед ShowModal просто присвой набор данных текущего окна просмотра этому DataSource. Что-то типа:

Form1.DataSource1.DataSet := Table1;
Form1.ShowModal;

Набор данных должен быть изменяемым. И все. Форма начнет редактировать то, что ты видишь ;)


 
Alik$ ©   (2003-08-26 07:58) [15]

Спасибо ребята получилось
Я сделал так

в модальной форме обявил uses mydodule
потом процедуре обявил
мастерсорс и все получилось :)
а при закрытии формы создал кнопку с процедурой

procedure TForm1.Button1Click(Sender: TObject);
begin
MainForm.DataSource1.Edit;
Form1.Close;
end;
и все Ок
Спасибо.



Страницы: 1 вся ветка

Текущий архив: 2003.09.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
3-48415
Алексей Петухов
2003-08-25 09:28
2003.09.15
Инсталяция BDE


1-48612
McSimm2
2003-09-03 13:35
2003.09.15
Проскакивает выражение


11-48488
Sewix
2003-01-06 13:09
2003.09.15
Memo и Icon


1-48503
Bumer
2003-09-02 17:37
2003.09.15
добавить объект


4-48842
Timoty
2003-07-15 23:44
2003.09.15
Как поменять цвет полосы прокрутки и заголовка окна?