Убегают столбики в StringGrid.

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Убегают столбики в StringGrid.

Сообщение GAMER »

При чем на разных компах, по-разному. Есть ли какой-то параметр, который запрещает, чтобы столбики убегали в сторону?
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

GAMER писал(а):столбики убегали в сторону

Ух ты! :) А можно скриншот?
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

Кстати, тоже сталкивался с таким (а может не совсем таким?). Эффект возникает при ресайзе формы - столбцы с фиксированной шириной случайным образом меняют размер (чаще всего - до ширины примерно в 10 px). Причём глюк наблюдается только при ресайзе к меньшим размерам с помощью кнопки Maximize в заголовке окна, а во всех прочих направлениях ресайз проходит нормально.

Скрин-пример во вложении. Колонка "Примечание" ресайзится каждый раз (подгонка ширины включена), а вот три "схлопнутые" колонки имеют фиксированные размеры (в разы большие, чем на скрине, само собой).
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Вот так нормально (Grid2)
А так - убегает (Grid1)

Это под Windows XP
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

ИМХО, лучше заменить использование TStringGrid на TVirtualTreeView.
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

2GAMER
Судя по вашим скринам, у вас немного другая проблема. StringGrid в вашем случая задействует горизонтальный скролл. Лечится просто: суммарная ширина столбцов должна быть на пару пикселей меньше ClientWidth самого грида (вообще-то это похоже на багу компонента, но может так и задумано - хз...).
Аватара пользователя
VirtUX
энтузиаст
Сообщения: 880
Зарегистрирован: 05.02.2008 09:52:19
Откуда: Крым, Алушта

Сообщение VirtUX »

Как, уже однажды, посоветовали мне, хочи предложить и Вам использовать KControls. Там очень хорошо сделан Grid (например: есть возможность объединять ячейки) - не глючит. А стандартный Grid - имеет ряд ошибок, запостенных в багтрекере. Можете добавить еще одну здесь ;)
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

Самое интересное, что бага со "схлапывающимися" столбцами имеет место и в стандартном StringGrig и в KGrid (на моём скрине, кстати, именно последний - не с той проги снимок сделал). Причём абсолютно одинаковое поведение.
А насчёт багтрекера... Там за последние пару недель уже несколько багов StringGrid появилось (я тоже добавлял один), но до сих пор никто из разработчиков по ним не отписался. Баги с другими контролами более активно проверяют.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Nik писал(а):2GAMER
Судя по вашим скринам, у вас немного другая проблема. StringGrid в вашем случая задействует горизонтальный скролл. Лечится просто: суммарная ширина столбцов должна быть на пару пикселей меньше ClientWidth самого грида (вообще-то это похоже на багу компонента, но может так и задумано - хз...).


Лечение такое применял раньше, но именно с этим гридом лечение не помогло. Прикол в том, что на своей машине я не могу сделать, чтобы оно убежало, но на другой, оно убегает. Может это зависит еще и от разрешения экрана? В багрепорт писать не спешу, потому что не ясно баг это или фича.
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

Скорее не от разрешения, а от размеров шрифта (на 120dpi бывают проблемы с масштабированием форм Lazarus, которые в Delphi лечились банальным Scaled=false/true).
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Размеров шрифта чего? Дело в том, что прога одна и та же, но на разных машинах ведет себя по разному.
Аватара пользователя
Nik
энтузиаст
Сообщения: 573
Зарегистрирован: 03.02.2006 23:08:09
Откуда: Киров
Контактная информация:

Сообщение Nik »

См. в системе "Свойства экрана -> Дополнительно -> Размер шрифта" (это для WinXP, в других системах может быть в другом месте эта опция).
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

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

Добавлено спустя 1 час 2 минуты 28 секунд:
Поборол так:

Код: Выделить всё

  StringGrid4.Width:=StringGrid4.Columns[0].Width+StringGrid4.Columns[1].Width+ScrollBox1.VertScrollBar.Size+5;   
Аватара пользователя
Максим
энтузиаст
Сообщения: 599
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Максим »

Народ, проверьте, что такое поведение воспроизводится в последней ревизии Lazarus'а и отправьте отчёт в багтрекер с тестовым проектом и описанием, при каких настройках Винды это происходит.
Аватара пользователя
GAMER
энтузиаст
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина
Контактная информация:

Сообщение GAMER »

Так там баг в том, что меняется ширина скролла, а остальные размеры фиксированы.
Ответить