Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.041 c
4-1165578894
leonidus
2006-12-08 14:54
2007.05.06
Получение списка иконок из экзешника по хендлу окна этого приложе


15-1176264301
Slider007
2007-04-11 08:05
2007.05.06
С днем рождения ! 10 апреля


15-1176045410
ppcumax
2007-04-08 19:16
2007.05.06
Как завершить процесс?


2-1176893560
delphi_
2007-04-18 14:52
2007.05.06
расположение кнопок "Свенуть" "Развернуть" "Закрыть"


2-1176385146
stone
2007-04-12 17:39
2007.05.06
IDE или нет?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский