|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
dbgrid и onCellClick
Друзья подскажите!
У меня есть forma1 на не grid и на этот grid нужно сделать onCellClick Чтобы можно было выбирать строку для редактирования как это сделать?? |
#2
|
|||
|
|||
помогите кто нить =)
|
#3
|
||||
|
||||
Создаёшь компонент-наследник стандартного DBGrid и в нём фигаришь необходимые свойства:
Код:
unit CoolDBGrid; interface uses SysUtils, Classes, Controls, Grids, DBGrids, WinTypes, WinProcs, Messages, Graphics, Forms, Dialogs, DB, Menus; type TCoolDBGrid = class(TDBGrid) private { Private declarations } protected { Protected declarations } public { Public declarations } property Canvas; function CellRect(ACol, ARow: Longint): TRect; property Col; //текущий столбец property Row;//текущая строка property InplaceEditor;//Содержимое ячейки. Можно использовать для копирования в буфер обмена property DefaultRowHeight;//Высота строки по умолчанию published { Published declarations } property OnClick;//Щелчок мыши property RowCount;//Количество строк (вместе с заголовками) property ColCount;//Количество столбцов (Вместе с индикатором) property VisibleColCount;//Примерно то же самое property VisibleRowCount; procedure Register; implementation procedure Register; begin RegisterComponents('Others', [TCoolDBGrid]); end; function TCoolDBGrid.CellRect(ACol, ARow: Longint): TRect; begin Result := inherited CellRect(ACol, ARow); end; end. Если ты чего-то не знаешь, значит есть шанс научиться чему-то новому Последний раз редактировалось Klassenas, 03.07.2011 в 23:30. |
#4
|
||||
|
||||
судя по разделу "Базы данных" речь идет о TDBGrid? у него есть событие:
property OnCellClick: TDBGridClickEvent; type TDBGridClickEvent = procedure (Column: TColumn) of object; в нем можно получить номер записи (если применимо к текущей БД) и поле по которому кликнули: Код:
procedure TForm1.DBGrid1CellClick(Column: TColumn); begin Caption:='FieldName='+Column.FieldName+' RecNo='+IntToStr(Column.Grid.DataSource.DataSet.RecNo); end; Пишу программы за еду. __________________ |