Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
ВнизInsert и DBGrid Найти похожие ветки
← →
проходил мимо решил заглянуть (2007-04-16 10:30) [0]Добрый день уважаемые мастера.
Вот такая трабла получилось. Есть DBGid хочу чтобы при нажатии кнопки Insert выскакивало сообщение. Написал код но что-то не выхожит посмотрите пожалуйста где я ошибся. Мож ASCII код кнопки другой.
procedure TRealizForm.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #45 then
begin
If MessageDLg("Дабавить новую запись?",mtConfirm,[mbYes,mbNo],0) = mrYes then
begin
// Здесь код добавления записи.
end;
end;
end;
← →
Johnmen © (2007-04-16 10:36) [1]27
← →
Sergey13 © (2007-04-16 10:36) [2]Логичнее обрабатывать не нажатие кнопки, а событие датасета, типа onNewRecord или BeforeInsert.
← →
Amoeba © (2007-04-16 10:36) [3]Если правильно понят вопрос, то нужно обрабатывать совсем другое событие. Читаем справку:
TDBNavigator.BtnClick
Simulates a button click on the database navigator, invoking the action of the button.
type TNavigateBtn = (nbFirst, nbPrior, nbNext, nbLast, nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh);
procedure BtnClick(Index: TNavigateBtn);
Description
Use BtnClick when you want the application, not the user, to control the database navigator. Call BtnClick, specifying a TNavigateBtn type as the value of the Index parameter, to invoke the command associated with the selected button.
The Index parameter can have one of the following values:
Value Command
nbFirst Go to the first record
nbPrior Go to the previous record
nbNext Go to the next record
nbLast Go to the last record
nbInsert Insert a blank record
nbDelete Deletes the current record
nbEdit Permits editing of the current record
nbPost Posts the current record
nbCancel Cancels the current edit
nbRefresh Refreshes the data in the dataset
Note: Calling BtnClick triggers the navigator’s OnClick event after the default action of the button.
← →
проходил мимо решил заглянуть (2007-04-16 10:41) [4]Johnmen © (16.04.07 10:36) [1]
27 это код ESC а не ins
← →
Asail (2007-04-16 10:42) [5]
> Amoeba © (16.04.07 10:36) [3]
А мне телепатор подсказывает, что имелось ввиду другое - нажатие Insert на клаве, когда DBGrid в фокусе. Если так, то смотри [2].
← →
Asail (2007-04-16 10:47) [6]А Insert с клавы обрабатывай по OnKeyDown (код клавиши VK_INSERT).
Если очень хочется...
← →
проходил мимо решил заглянуть (2007-04-16 10:49) [7]Asail (16.04.07 10:42) [5]
Имено так DBGrid в фокусе а Insert на клаве но событие датасета не должно происходить мне надо обработать до этого события.
← →
проходил мимо решил заглянуть (2007-04-16 10:54) [8]Asail (16.04.07 10:47) [6] спасибо это именно то что я хотел.
← →
Sergey13 © (2007-04-16 10:58) [9]> [8] проходил мимо решил заглянуть (16.04.07 10:54)
Потом попробуй нажать кнопку "стрелка вниз" стоя на последней записи.
← →
Sergey13 © (2007-04-16 11:07) [10]> [8] проходил мимо решил заглянуть (16.04.07 10:54)
ИМХО, ты вообще выбрал самый плохой вариант пользовательского интерфейса.
Если юзер нажал конкретную кнопку, то он наверное не забавляется изучая возможности клавиатуры, а хочет именно вставить запись. Зачем его спрашивать? Если вставка сопряжена с какими то наворотами, то логичнее было бы делать ее через модальную форму, а не через грид.
← →
Плохиш © (2007-04-16 11:18) [11]
> проходил мимо решил заглянуть (16.04.07 10:49) [7]
> Asail (16.04.07 10:42) [5]
> Имено так DBGrid в фокусе а Insert на клаве но событие датасета
> не должно происходить мне надо обработать до этого события.
Дурость...
Перед вставкой записи в наборе данных срабатывает событие OnBeforeInsert, если по каким-то причинам вставку надо запретить, то это делается с помощью вызова процедуры Abort в этом событии.
← →
Asail (2007-04-16 14:36) [12]
> Плохиш © (16.04.07 11:18) [11]
Полностью поддерживаю!!!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.05.06;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.049 c