Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
ВнизDBGrid и двойной клик на заголовке! Найти похожие ветки
← →
svv (2004-04-15 18:03) [0]Есть DBGrid!
реализовано открывание окна редактирования данных по двойному клику на строке таблицы, а также сортировка по столбцам (кликом по заголовку столбца)
недостаток "чайники" делают двойной клик по заголовку и в результате открывают на редактирование первую отсортированную запись таблицы.
как запретить двойной клик на заголовке и разрешить его на остальных ячейках?
← →
Johnmen © (2004-04-15 18:07) [1]Анализирую TShiftState на ssDouble
← →
svv (2004-04-15 18:10) [2]а поподробнее можно?
← →
ZrenBy © (2004-04-15 18:15) [3]1.
Поджигай или туши флажок на
OnTitleClick
OnCellClick
2.
OnMouseDown(... X, Y: Integer);
rect = CellRect(0,0);
← →
KSergey © (2004-04-16 08:28) [4]Провел сейчас экспериментик
Как я понимаю - двойной клик отлавливаем в событии OnDblClick DBGrid"а
Тогда могу предложить такой код (проверял):type TDBGridFreind = class (TDBGrid);
procedure TMainForm.DBGrid1DblClick(Sender: TObject);
var
i: Integer;
pt: TPoint;
begin
pt := Mouse.CursorPos;
pt := DBGrid1.ScreenToClient (pt);
if pt.y > TDBGridFreind(DBGrid1).RowHeights[0] then // если мышь ниже заголовка
ShowMessage ("Двойной клик по ячейкам")
else
ShowMessage ("Двойной клик по заголовку")
end;
Наличие заголовка не проверяется - считаем, что он гарантированно есть.
По хорошему, конечно бы, проверять что клик в в область ячеек попадает (например, если строк в гриде всего 2 и кликаем ниже строк с данными)
Но тогда действительно проще уж пересесть на MouseDown и > [1] Johnmen © (15.04.04 18:07)
← →
svv (2004-04-16 13:47) [5]Большое спасибо!
Все отлично сработало!
PS поступил по примеру от KSergey.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.039 c