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

Вниз

Как удалять строки из DBGrid кнопкой Delete?   Найти похожие ветки 

 
Michael5   (2005-07-13 22:35) [0]

Подставляешь код какой-нибудь кнопки - работает.
Но нажатие кнопок-стрелок, Page Up, Page Down, Home, End, и самое главное, Delete, даже не обрабатывается (то есть они к key не относятся?)

Вот, такой у меня случай, гляньте, будьте добры:

procedure TForm1.DBGrid3KeyPress(Sender: TObject; var Key: Char);
begin
if key="13" then //enter для примера
ADOTable3.Delete;
DBGrid3.DataSource.DataSet.Delete;
end;


 
Reindeer Moss Eater ©   (2005-07-13 23:25) [1]

(то есть они к key не относятся?)

procedure TForm1.DBGrid3KeyPress(Sender: TObject; var Key: Char);

Они к Char не относятся


 
ANB ©   (2005-07-13 23:33) [2]


> ADOTable3.Delete;
> DBGrid3.DataSource.DataSet.Delete;
?????
А два раза то удалять зачем ?
А в гриде Ctrl+Delete удалять должно (не уверен).


 
Michael5   (2005-07-14 08:06) [3]

>ANB ©   (13.07.05 23:33) [2]
> ADOTable3.Delete;
> DBGrid3.DataSource.DataSet.Delete;

Первое - это разрешение для базы данных на удаление (что-то вроде).
Второе - собственно удаление из таблицы (и из базы данных)

Да, Ctrl+Delete должно удалять (еще не проверял)

А все-таки, как считать нажатие кнопки Del?


 
sniknik ©   (2005-07-14 08:16) [4]

> А все-таки, как считать нажатие кнопки Del?
по onKeyDown.


 
msguns ©   (2005-07-14 09:38) [5]

>А все-таки, как считать нажатие кнопки Del?

Выбросить нафигатор нафиг и использовать собственные кнопки (а лучше в комбинации TActionList+TActions с назначенными клавишами)

Вообще же юзать для удаления Del не рекомендуется, т.к. тогда нельзя будет при редактировании грида удалять символы этой клавишей.

Обработчик OnKeyDown не рекомендуется использовать не слишком опытным, по крайней мере в гриде. Может привести к неадекватной реакции многих стандартных фичей грида.

Различаем Данные (В общем случае TDataSet, в данном - TADOTable) и Отображение данных (TDataSource+TDBGrid)
Операции над данными (удаление, вставка, изменение) выполняем через датасет. Все, что связано с отображением (отрисовка, фокус и т.д.), юзаем через грид. Почему ? Внимательно читаем [2]


 
ANB ©   (2005-07-14 11:01) [6]


> Первое - это разрешение для базы данных на удаление (что-то
> вроде).
> Второе - собственно удаление из таблицы (и из базы данных)
- какое разрешение то ? Ты удаляешь подряд две записи этим кодом.



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
3-1121063866
Catik
2005-07-11 10:37
2005.08.21
Как проверить наличие таблицы в БД ?


4-1119704859
vlk2005
2005-06-25 17:07
2005.08.21
Информация об установленное оборудование на компьютерах в ЛВС ?


14-1122629003
MaksimkaP
2005-07-29 13:23
2005.08.21
Доступ в локальную сеть с двух машин


3-1121239183
cvg
2005-07-13 11:19
2005.08.21
Почему может быть не найдено поле?


9-1114775613
Alex_C
2005-04-29 15:53
2005.08.21
Алгоритм создания части окружности