Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.08.2011, 09:54
M.A.F. M.A.F. вне форума
Прохожий
 
Регистрация: 08.08.2011
Сообщения: 1
Репутация: 10
По умолчанию подстановка в dbgrid

Добрый день.
Нужно сделать, чтобы в одном из полей dbgrid список pickbox открывался не только по нажатии мышкой на стрелку сбоку, но и когда ячейка находится в фокусе, по нажатию клавиши (как в обычном listbox, должна подставляться строка, начинающаяся с нажатой буквы).
Подробности:
В базе данных имеются две таблицы - заполняемая и справочник.
База данных MSAccess, связана с приложением через ADO. Одно из полей ADOTable заполняемой таблицы связано со справочником как поле соответствия (lookup).
Ответить с цитированием
  #2  
Старый 08.08.2011, 15:02
Аватар для Viajero
Viajero Viajero вне форума
Активный
 
Регистрация: 14.06.2011
Адрес: РБ
Сообщения: 214
Версия Delphi: Delphi 7 FB 2.5
Репутация: 5849
По умолчанию

Сложный вопрос, т к стандартный 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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter