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

Курс видеоуроков «Программирование и взлом 2O18»
Выпущен 13 августа 2O18 года
Свежие инструменты, новые видеоуроки!

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

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

БОЛЬШОЙ FAQ ПО DELPHI



Выравнивание колонок StringGrid 2

Нижеприведенный код выравняет данные компонента по правому краю:


 procedure TForm1.StringGrid1DrawCell(Sender: TObject; Col, Row:
   Longint; Rect: TRect; State: TGridDrawState);
 var
   lRow, lCol: Longint;
 begin
   lRow := Row;
   lCol := Col;
   with Sender as TStringGrid, Canvas do
   begin
     if (gdSelected in State) then
     begin
       Brush.Color := clHighlight;
     end
     else if (gdFixed in State) then
     begin
       Brush.Color := FixedColor;
     end
     else
     begin
       Brush.Color := Color;
     end;
     FillRect(Rect);
     SetBkMode(Handle, TRANSPARENT);
     SetTextAlign(Handle, TA_RIGHT);
     TextOut(Rect.Right - 2, Rect.Top + 2, Cells[lCol, lRow]);
   end;
 end;
 

Хитрость заключается в установке выравнивания текста TA_RIGHT, позволяющей осуществлять вывод текста, начиная с правой стороны (от правой границы). Не бойтесь, текст не будет напечатан задом наперед!

Вы наверное уже обратили внимание на объявление локальных переменных lCol и lRow. На входе я присваиваю им значения параметров Col и Row (имя, которое дало мне Delphi IDE). Дело в том, что объект TStringGrid имеет свойства с именами Col и Row. Эти свойства будут доступны в теле блока "with Sender as TStringGrid", но они не являются параметрами для всех обявленных в шапке блока объектов ((речь идет об объекте Canvas, у которого нет свойств с именами Col и Row - В.О.)).




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



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



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


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