Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков программирования и крэкерства 5.0
(актуальность: январь 2017)
Свежие инструменты, новые видеоуроки!

  • 300+ видеоуроков
  • 800 инструментов
  • 80 свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Позиция ячейки в TDBGrid

В 8 классе я впервые сконектился с девушкой на 9600бод. В 11 классе я сконектился с девушкой стандарта V90-60-90 на 56700, но стоило мне это 200 долларов за ночной анлимитед. На 2 курсе института я решил завести себе выделенную девушку. На 3 курсе я узнал от друзей, что пропускная способность моей девушки 2Мб/с, и к ней подключен не только я. На 5 курсе я хакнул многих девушек нашего курса. На 6-ом меня поймали два грузина, после этого я стал сисопом. После того как я стал сисопом, я попал на зону, где меня сделали администратором и меня хакали все кому не лень. После этого я не смог конектиться с девушкой даже на 2400. В 30 лет я пристрастился к ИЕ4, через него поймал win95CIH и нашел успокоение 26 апреля 1999г.

В TCustomGrid определен метод CellRect, который, к сожалению, защищен. Это означает, что даный метод доступен только для TCustomGrid и его наследников. Но все-таки существует немного мудреное решение вызова данного метода:


 type
   TMyDBGrid = class(TDBGrid)
     public
       function CellRect(ACol, ARow: Longint): TRect;
   end;
 
 function TMyDBGrid.CellRect(ACol, ARow: Longint): TRect;
 begin
   Result := inherited CellRect(ACol, ARow);
 end;
 

Вы можете сделать приведение типа вашего DBGrid к TMyDBGrid (это возможно, поскольку CellRect статический метод) и вызвать CellRect:


 Rectangle := TMyDBGrid(SomeDBGrid).CellRect(SomeColumn, SomeRow);
 
 procedure TfmLoadIn.DBGrid1DrawColumnCell(Sender: TObject;
   const Rect: TRect; DataCol: Integer; Column: TColumn;
   State: TGridDrawState);
 const
   Disp = 2; //Правильно выравниваем компонент
 begin
   inherited;
   if (gdFocused in State) then
   begin
     if (Column.FieldName = 'TYPEDescription') then
     begin
       dlTYPEDescription.Left := Rect.Left + DBGrid1.Left + Disp;
       dlTYPEDescription.Top := Rect.Top + DBGrid1.top + Disp;
       dlTYPEDescription.Width := Rect.Right - Rect.Left;
       dlTYPEDescription.Height := Rect.Bottom - Rect.Top;
       dlTYPEDescription.Visible := True;
     end;
   end;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS