Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Выравнивание по столбцам TDBGrid [D7, 2003]


lewka ©   (18.10.17 14:24

Здравствуйте!
Делаю фильтр для таблицы БД
Выравниваю TPanel по столбцам TDBGridEh вот таким способом

n_p:=0;
panel_l_sum:=0;
try
 for i1:=0 to fmplangraf.ComponentCount-1 do
  begin
   if (fmplangraf.Components[i1] is TPanel) then
    begin
    //(fmplangraf.Components[i1] as TPanel).Parent:=ScrollBox1;
    (fmplangraf.Components[i1] as TPanel).BorderStyle:=bsNone;
    (fmplangraf.Components[i1] as TPanel).Top:=12;
    (fmplangraf.Components[i1] as TPanel).Width:=DBGridEh1.Columns[n_p].Width;
     n_p:=n_p+1;
    (fmplangraf.Components[i1] as TPanel).Left:=panel_l_sum+14-ScrollBox1.HorzScrollBar.Position;
     panel_l_sum:=panel_l_sum+(fmplangraf.Components[i1] as TPanel).Width;
    (fmplangraf.Components[i1] as TPanel).Caption:='left='+inttostr((fmplangraf.Components[i1] as TPanel).Left)+' Width='+inttostr((fmplangraf.Components[i1] as TPanel).Width)
    end;
  end;
 DBGridEh1.Width:=panel_l_sum+38;
 except
  end;

Но выравнивание происходит только для первого столбца, а остальные понемногу сдвигаются, и чем дальше столбец, тем больше сдвиг. На скриншоте показал для примера
http://prntscr.com/gyw65w

Подскажите, как выравнивать равно по всем столбцам


rrrrrrr ©   (18.10.17 14:28[1]

ты серьезно?


lewka ©   (18.10.17 14:41[2]


> ты серьезно?

Конечно


KilkennyCat ©   (18.10.17 15:08[3]

ужасный код.
но я подскажу
panel_l_sum:=panel_l_sum+(fmplangraf.Components[i1] as TPanel).Width + 1;


lewka ©   (18.10.17 15:35[4]

спс. Сам бы не догадался:))))


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо