Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

DBCtriGrid - модифицированная сетка

CuBook25

В дополнение компонента DBGrid для управления записями таблицы предназначен компонент DBCtrlGrid - модифицированная сетка. Компонент DBCtrlGrid представляет собой несколько отдельных панелей, на которых располагаются обычные визуальные компоненты, например, такие как DBEdit и DBImage. Компонент DBGrid отображает информацию одновременно из нескольких записей набора данных. В отличие от него, компонент DBCtrlGrid позволяет отображать каждую запись набора данных на отдельной панели.
 
Модифицированная сетка DBCtrlGrid может отображать несколько одинаковых панелей, но текущей является только одна из них. При проектировании приложения визуальные компоненты, например, DBEdit или DBText, располагаются на одной (верхней) панели. Когда визуальные компоненты помещаются на панель модифицированной сетки, у них автоматически устанавливается нужное значение свойства DataSource, взятое из одноименного свойства модифицированной сетки. Каждому визуальному компоненту нужно задать значение свойства DataField для связи с требуемым полем набора данных (программно или выбрать из списка с помощью Инспектора объектов).
 
При выполнении приложения компоненты, размещенные на одной панели, дублируются на другие панели сетки. Число панелей, одновременно видимых в модифицированной сетке, определяется свойством PanelCount типа int, доступным для чтения во время выполнения приложения. Свойство PanelIndex типа int указывает текущую панель, на которой находится просматриваемая запись набора данных. Установив этому свойству соответствующее значение, можно сделать текущей нужную панель.
 
Все панели сетки имеют одинаковые размеры, определяемые свойствами PanelHeight (высота) и PanelWidth (ширина) типа int. Каждая панель может иметь рамку, что определяется свойством PanelBorder типа TDBCtrlGridBorder, принимающим следующие значения:
  • gbNone (рамки нет);
  • gbRaised (трехмерная приподнятая рамка) - по умолчанию.
Число одновременно видимых строк и столбцов сетки задают свойства RowCount и ColCount типа int, значения которых по умолчанию равны трем и одному. Это соответствует трем панелям в одном столбце и наличию вертикальной полосы прокрутки.
 
Свойство Orientation типа TDBCtrlGridOrientation при наличии нескольких столбцов определяет порядок размещения записей на панелях. Это свойство принимает следующие значения:
  • goVertical (записи выводятся по горизонтали: слева направо и сверху вниз) - по умолчанию;
  • goHorizontal (записи выводятся по вертикали: сверху вниз и слева направо).
При задании более одного столбца и значении goHorizontal свойства Orientation у сетки появляется горизонтальная полоса прокрутки.
 
На панели может отображаться прямоугольник фокуса (прямоугольная рамка), указывающий на текущую запись. Его отображением управляет свойство ShowFocus типа bool, которое по умолчанию имеет значению true, что соответствует отображению прямоугольника фокуса. Значение false свойства ShowFocus скрывает прямоугольник фокуса.
 
Свойства AllowDelete и AllowInsert типа bool управляют возможностями удаления текущей и вставки новой записи в набор данных, записи которого отображаются на панелях сетки. По умолчанию оба свойства имеют значение true, и пользователь имеет возможность удалять и вставлять записи.
 
Свойство EditMode типа bool определяет, находится ли набор данных в режиме редактирования (значение true). Пользователь управляет его значением с помощью действий с визуальными компонентами, разработчик может устанавливать его программно.
 
С помощью мыши и клавиатуры пользователь управляет записями набора данных посредством компонента DBCtrlGrid, как и в случае компонента DBGrid. Программисту предоставляются дополнительные возможности управления набором данных, связанные с использованием метода:
void __fastcall DoKey(TDBCtrlGridKey Key);
Выполняемые с помощью этого метода операции задает параметр Key, принимающий следующие значения:
  • gkNull (нет действий);
  • gkEditMode (переключение значения свойства EditMode);
  • gkPriorTab (передача фокуса ввода предыдущему элементу формы);
  • gkNextTab (передача фокуса ввода следующему элементу формы);
  • gkLeft (переход на одну панель влево);
  • gkRight (переход на одну панель вправо);
  • gkUp (переход на одну панель вверх);
  • gkDown (переход на одну панель вниз);
  • gkscrollUp (переход на одну строку вверх);
  • gkScrollDown (переход на одну строку вниз);
  • gkPageUp (переход вперед на число записей, равное произведению числа строк и столбцов панелей сетки ColCount*RowCount);
  • gkPageDown (переход назад на число записей, равное произведению числа строк и столбцов панелей сетки);
  • gkHome (переход на первую запись);
  • gkEnd (переход на последнюю запись);
  • gkInsert (вставка новой записи методом Insert и переход в режим редактирования);
  • gkAppend (вставка новой записи методом Append и переход в режим редактирования);
  • gkDelete (удаление текущей записи);
  • gkCancel (отмена режима редактирования).
Например, переход на одну панель вправо обеспечивает следующий код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
BBCtrlGrid1->DoKey(gkRight);
}
При необходимости можно выполнить программную прорисовку панелей, используя для этого событие OnPaintPanel типа TPaintPanelEvent, возникающее непосредственно перед отображением панелей. Тип этого события описан как:
typedef void __fastcall (__closure *TPaintPanelEvent)(TDBCtrlGrid* DBCtriGrid, int Index);
Параметр Index указывает номер панели, отображение элементов которой выполняется в настоящий момент. Кроме прорисовки, в обработчике события OnPaintPanel можно выполнить другие действия, например, обработку связанных с панелью данных.
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

  Комментарии

0 Антон 13.11.2015 14:07 #1
Почему не цепляются DBEdit1 к DBCtrlGrid

Цитата:

А необходимые компоненты есть на форме и настроены?

Добавить комментарий