Главная страница
    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.049 c
2-1176794298
Johnmen
2007-04-17 11:18
2007.05.06
Булева алгебра. Разминка.


15-1176132700
ArtemESC
2007-04-09 19:31
2007.05.06
VISTA


15-1175938959
ЭРИКА
2007-04-07 13:42
2007.05.06
ПОЗДРАВЛЕНИЕ


15-1175870246
oldman
2007-04-06 18:37
2007.05.06
Спасибо Биллу Гейтсу, за то, что нам так весело...


2-1176529067
Romm
2007-04-14 09:37
2007.05.06
Помогите найти ошибку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский