Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить ширину области с колонками 
:(
    Опции темы
Delphist
  Дата 16.9.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



У меня есть DBGridEh'ский грид, у которого AutoFitColWidths = False, т.е. ширина всех колонок могут занимать произвольную область, если они больше ширины самого DBGridEh, то появляется scroll в противном случае нет. 

Есть ли у самого DBGridEh'a, какое-нить свойство определяющее ширину области, занимающую всеми колонками?
Делать так, особенно в отрисовке не совсем разумно, как мне кажется:
Код

  function GetColsWidth: integer;
  var
    i: integer;
  begin
    Result := 0;
    with TDBGridEh(Sender) do
       for i := 0 to  Columns.Count - 1 do
         Result := Result + Columns[i].Width - 10; {10 - было получено чисто эмперическим путем, в противном случае не правлиьно
                                                                             определяется ширина}
  end;


Это сообщение отредактировал(а) Delphist - 16.9.2008, 10:35


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Frees
Дата 16.9.2008, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(Delphist @  16.9.2008,  12:30 Найти цитируемый пост)
Есть ли у самого DBGridEh'a, какое-нить свойство определяющее ширину области, занимающую всеми колонками?

а зачем тебе это?


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Delphist
Дата 16.9.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Frees @  16.9.2008,  12:09 Найти цитируемый пост)
а зачем тебе это? 

просто у мення записи как бы объединены в группы. А над каждой группой я добавляю строку, в которой должен писаться заголовок по центру не всего грида а по центру колонок.


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Frees
Дата 16.9.2008, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(Delphist @  16.9.2008,  13:28 Найти цитируемый пост)
просто у мення записи как бы объединены в группы. А над каждой группой я добавляю строку, в которой должен писаться заголовок по центру не всего грида а по центру колонок.


ты уверен что для этого Грид надо использовать? я вообщето не совсе смог представить что ты пытаешся сделать, но помоему ты перемудрил, покажи скрин того что хочеш нарисовать


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Delphist
  Дата 16.9.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Frees @  16.9.2008,  12:38 Найти цитируемый пост)
ты уверен что для этого Грид надо использовать? 

Уверен. Я уже умею выводить это, только по центру всего DBGridEh.ClientWidth, а хотелось бы по центру колонок, для чего мне просто нужно знать их суммарную ширину.

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  pic.JPG 18,96 Kb


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Frees
Дата 16.9.2008, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



ну если тебе не нравится что во время отрисовки считаеш размер то сделай вот так примерно
Код

var FColsWidth: Integer;
  FTimer: TTimer;
procedure TForm1.DBGridEh1OnColWidthsChanged(
  Sender: TObject);
begin
 if FTimer = nil then
 begin
   FTimer := TTimer.Create(self);
   FTimer.OnTimer := GetColsWidth;
   FTimer.Interval := 1000;
 end;
 FTimer.Enabled := true;
end;

procedure TForm1.GetColsWidth(
  Sender: TObject);
var i: integer;
begin
  FColsWidth := 0;
  with DBGridEh1 do
    for i := 0 to Columns.Count - 1 do
      if Columns[i].Visible then
        FColsWidth := FColsWidth + Columns[i].Width - 10;
  FTimer.Enabled := false;
end;


и вместо вызова GetColsWidth используй переменную FColsWidth


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
vovk
Дата 16.9.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 28.2.2008

Репутация: 6
Всего: 6



DBGridEh.ClientWidth и есть суммарнай ширина колонок + область выделения по моему 0.5 
еслиты знаеш филды которые тебе надо определять в группы то распологай их рядом и над ними пиши что нужно непонятно в чём сложность.
Напиши что не получается?
Делай надписи в лейбл распологай лейбл над грид ширина суммируй колонки.. или это не подходит?

понял сложность .. но по таймеру по моему обсчитывать ещё веселее smile) переесовка лучше а так проще расположи грид в скроллбаре и тамже лейблы и всё


Это сообщение отредактировал(а) vovk - 16.9.2008, 13:42
PM MAIL   Вверх
Frees
Дата 16.9.2008, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(vovk @  16.9.2008,  15:31 Найти цитируемый пост)
DBGridEh.ClientWidth и есть суммарнай ширина колонок + область выделения по моему 0.5 


это ширина самого грида ширину колонок можно получить сложение ширины колонок грида
но делать этого во время отрисовке не следует



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Delphist
Дата 16.9.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Frees @  16.9.2008,  14:19 Найти цитируемый пост)
ну если тебе не нравится что во время отрисовки считаеш размер то сделай вот так примерно

Хорошо. Как вариант пойдет, и все же хотелось бы средствами самого DBGridEh'a

Цитата(Frees @  16.9.2008,  14:37 Найти цитируемый пост)

это ширина самого грида ширину колонок можно получить сложение ширины колонок грида
но делать этого во время отрисовке не следует

ага - согласен

Добавлено через 4 минуты и 23 секунды
Цитата(vovk @  16.9.2008,  14:31 Найти цитируемый пост)
переесовка лучше а так проще расположи грид в скроллбаре и тамже лейблы и всё

Какие лейбы smile, ты чё? Достичь обяединения нескольких ячеек в одну строку можно тока перерисовкой.

Это сообщение отредактировал(а) Delphist - 16.9.2008, 13:49


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Frees
Дата 16.9.2008, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(Delphist @  16.9.2008,  15:47 Найти цитируемый пост)
Хорошо. Как вариант пойдет, и все же хотелось бы средствами самого DBGridEh'a

сдается мне нет у него таких средств


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
vovk
Дата 16.9.2008, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 28.2.2008

Репутация: 6
Всего: 6



Цитата

Какие лейбы , ты чё? Достичь обяединения нескольких ячеек в одну строку можно тока перерисовкой.

абсолютная неправда легко можно создать филд и запихать всё что в него нужно до отрисовки

ээ на счёт филда и всего что угодно по моему погарячился.. имелось в виду содержимое колонок в гриде

Но задача по моему другая стояла создать название над группой колонок..

Это сообщение отредактировал(а) vovk - 16.9.2008, 14:19
PM MAIL   Вверх
Delphist
Дата 16.9.2008, 14:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Frees @  16.9.2008,  14:53 Найти цитируемый пост)
сдается мне нет у него таких средств 

OnTimer тоже как то  не очень


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Frees
Дата 16.9.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



Цитата(Delphist @  16.9.2008,  16:33 Найти цитируемый пост)
OnTimer тоже как то  не очень

а что с ним не так


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Delphist
Дата 16.9.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(vovk @  16.9.2008,  15:14 Найти цитируемый пост)
Но задача по моему другая стояла создать название над группой колонок..

создать не проблема нужно было отцентровать именно по ширине колонок, причем проблема в быстром поиске этой ширине.

Это сообщение отредактировал(а) Delphist - 16.9.2008, 14:44


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Delphist
Дата 18.10.2008, 19:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



????

Это сообщение отредактировал(а) Delphist - 20.10.2008, 11:12


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0552 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.