|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
подстановка в dbgrid
Добрый день. Нужно сделать, чтобы в одном из полей dbgrid список pickbox открывался не только по нажатии мышкой на стрелку сбоку, но и когда ячейка находится в фокусе, по нажатию клавиши (как в обычном listbox, должна подставляться строка, начинающаяся с нажатой буквы). Подробности: В базе данных имеются две таблицы - заполняемая и справочник. |
#2
|
||||
|
||||
Сложный вопрос, т к стандартный dbgrid немножко недоделанный (в Delphi 7, с более новыми не работал) - в соответствующих событиях oncellclick и onkeydown нельзя узнать номер колонки и строки. Это есть в сторонних компонентах. Я напрмер использовал Ehlib, (я прикручивал внешний список, но там есть даже и внутренний)
Есть ещё способы вытащить эти свойства сделав свой класс. Код:
{Код улучшенного TDBGrid, имеющего свойства Col,Row и Canvas и метод CellRect. Это чрезвычайно полезно в случае, если вы, к примеру, хотитеполучить выпадающий список на месте редактируемой пользователем ячейки.} unit VUBComps; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, Menus; type TDBGridVUB = class(TDBGrid) private { Private declarations } protected { Protected declarations } public property Canvas; function CellRect(ACol, ARow: Longint): TRect; property Col; property Row; procedure Register; implementation procedure Register; begin RegisterComponents('VUBudget', [TDBGridVUB]); end; function TDBGridVUB.CellRect(ACol, ARow: Longint): TRect; begin Result := inherited CellRect(ACol, ARow); end; end. ©Drkb::03050 Взято с http://delphiworld.narod.ru - Товарищ прапорщик!!! Остановите поезд!!! - Поезд СТОЙ! РАЗ! ДВА! Последний раз редактировалось Viajero, 08.08.2011 в 15:11. |