Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CellAutoHeight / 25 сообщений из 30, страница 1 из 2
17.04.2021, 19:32
    #40063403
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Кстати, джентльмены, а не сталкивался ли кто-нибудь с таким глюком? Что-то не смог нагуглить методов борьбы.

Дано: cxGrid, DBTableView. Выставлен CellAutoHeight. При открытии запроса в дизайн-тайме - всё работает как надо, размеры рассчитываются, текст переносится. Теперь приложение запускается, запрос открывается в ран-тайме - размеры рассчитываются, строки приобретают необходимую высоту, а вот текст остаётся однострочным и обрезается.

Никаких действий в коде с этим view не производится, никаких настроек не меняется.

Бил программистов по голове. Поцарапал лом.
...
Рейтинг: 0 / 0
17.04.2021, 19:56
    #40063414
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer,
Скорее всего флаг DT_WORDBREAK где-то теряется. Или, напротив, DT_SINGLELINE зачем-то ставится.
Я бы не стал заморачиваться с чужими исходниками и отрисовал ручками как надо.
...
Рейтинг: 0 / 0
17.04.2021, 21:01
    #40063434
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Соколинский Борис> Я бы не стал заморачиваться с чужими
Соколинский Борис> исходниками и отрисовал ручками как надо.

Зачем, если проще найти и вызвать готовый метод?

P.S. Если это вообще не баг, конечно, что вероятно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17.04.2021, 21:02
    #40063435
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Тестовый пример с ИМЕННО тем текстом, который так странно себя ведёт.
...
Рейтинг: 0 / 0
17.04.2021, 21:06
    #40063437
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Соколинский Борис
Я бы не стал заморачиваться с чужими исходниками и отрисовал ручками как надо.

В данном случае я скорее сниму этот CellAutoHeight и пользователи не узнают, что им могло быть ещё лучше. Но мне крайне странно, что вещь, которая нормально работает во многих местах и нормально работает в этом в дизайн-тайме, в ран-тайме вдруг окосела.

DimaBr
Тестовый пример с ИМЕННО тем текстом, который так странно себя ведёт.

Что ты называешь тестовым примером? Тебя пустить в нашу базу, чтобы ты увидел такое поведение на строке, например, "Регистрация через мобильное приложение"? Это правда именно то, чего тебе не хватает, чтобы помочь?
...
Рейтинг: 0 / 0
17.04.2021, 21:09
    #40063439
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Тебя пустить в нашу базу, чтобы ты увидел такое поведение на строке, например, "Регистрация через мобильное приложение"? Это правда именно то, чего тебе не хватает, чтобы помочь?
Тестовый пример, это три файла в архиве (dpr+pas+dfm) которые повторяют подобное явление. А чужая база мне ни к чему, своих хватает.
...
Рейтинг: 0 / 0
17.04.2021, 21:18
    #40063445
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Открою секрет, что в рантайме, что в дизайнтайме используется одна и таже процедура отрисовки. Так что смотри что ты там у себя в коде делаешь, что меняется поведение...
...
Рейтинг: 0 / 0
17.04.2021, 21:25
    #40063447
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
white_nigger
Открою секрет, что в рантайме, что в дизайнтайме используется одна и таже процедура отрисовки.

Спасибо, кэп.

white_nigger
Так что смотри что ты там у себя в коде делаешь

Могу ещё раз написать, при необходимости даже большими буквами: НИКАКИХ ДЕЙСТВИЙ В КОДЕ С ЭТИМ VIEW НЕ ПРОИЗВОДИТСЯ.
...
Рейтинг: 0 / 0
17.04.2021, 21:25
    #40063448
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Гаджимурадов Рустам

Зачем, если проще найти и вызвать готовый метод?
В данном случае готовый метод - вызов одной функции DrawText с правильными параметрами.
"Проще найти" в отношении DevExpress мне кажется излишне оптимистичным.
...
Рейтинг: 0 / 0
17.04.2021, 21:26
    #40063450
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer,
Custom-темы используются?
...
Рейтинг: 0 / 0
17.04.2021, 21:35
    #40063453
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Соколинский Борис
Custom-темы используются?

Не совсем уверен в ответе. Я никогда тем не использовал, поэтому не возьмусь говорить про custom, не custom... Вот что есть в коде на эту тему:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
  LookAndFeel := TcxLookAndFeel.Create(nil);
  LookAndFeel.NativeStyle := False;
  LookAndFeel.Kind := lfStandard;
  LookAndFeel.SkinName := 'Caramel';
  LookAndFeel.AssignedValues := [lfvKind, lfvNativeStyle, lfvSkinName];

  LookAndFeelController := TcxLookAndFeelController.Create(nil);
  LookAndFeelController.NativeStyle := False;
  LookAndFeelController.Kind := lfStandard;
  LookAndFeelController.SkinName := 'Caramel';
...
Рейтинг: 0 / 0
17.04.2021, 21:47
    #40063456
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer,
Это и есть custom - то что DE сами наваяли. Поменять NativeStyle/SkinName пробовали?
...
Рейтинг: 0 / 0
17.04.2021, 22:00
    #40063461
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer
Могу ещё раз написать, при необходимости даже большими буквами: НИКАКИХ ДЕЙСТВИЙ В КОДЕ С ЭТИМ VIEW НЕ ПРОИЗВОДИТСЯ.
Да хоть сто раз напиши. Если фича уже 20 лет работает у тысяч пользователей, а у тебя в одном конкретном месте нет - то изучай то место. Изучай данные. Может какие пробелы неразрывные. Что ты как маленький? Сделай воспроизводимый пример в конце-концов. И не говори, что для тебя это неразрешимая проблема
...
Рейтинг: 0 / 0
17.04.2021, 23:08
    #40063485
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Соколинский Борис
Это и есть custom - то что DE сами наваяли. Поменять NativeStyle/SkinName пробовали?

Да, поигрался. На native отображении программа стала выглядеть лучше, но бага не ушла. Кроме того, в той форме один level переключается между разными view - убрал и посмотрел, что будет, если зафиксировать пару level/view и не трогать. Тоже не изменилось. Попробовал включать в ран-тайме после открытия запроса - тоже не изменилось (ну точнее - открывается в однострочном режиме, при включении CellAutoHeight строки становятся рассчитанной высоты, а текст по-прежнему однострочный).

white_nigger
Если фича уже 20 лет работает у тысяч пользователей

И у некоторых иногда глючит, верно? Ты так возмущаешься, словно у вас на зафиксировано ни одной проблемы в выпущенных релизах.

white_nigger
Изучай данные. Может какие пробелы неразрывные.

И в дизайн-тайме при этом отображается верно? Сомнительно, имхо. Кстати, а что за неразрывные пробелы? Вы их где-то поддерживаете?

white_nigger
Что ты как маленький? Сделай воспроизводимый пример в конце-концов. И не говори, что для тебя это неразрешимая проблема

По-моему, как маленький ты, если полагаешь, что у меня нет занятий важнее, чем бесплатно исправлять ваши ошибки. Я этого удовольствия давно накушался по уши. Эта бага в этом конкретном месте для меня стоит того, чтобы спросить на форуме - вдруг кто уже сталкивался, но не стоит того, чтобы её отлаживать. Проще отключить опцию и идти дальше заниматься делом.

Соколинский Борис
Это и есть custom - то что DE сами наваяли. Поменять NativeStyle/SkinName пробовали?

Попробовал, не изменилось.
...
Рейтинг: 0 / 0
18.04.2021, 00:28
    #40063493
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer
И у некоторых иногда глючит, верно? Ты так возмущаешься, словно у вас на зафиксировано ни одной проблемы в выпущенных релизах.
Посмотрел в тикетах. Не нашёл чтоб за последгие годы у кого-то CellAutoHeight глючил. Есть режимы в которых не поддерживается, но это описано. Но такого как у тебя - нет.
softwarer
По-моему, как маленький ты, если полагаешь, что у меня нет занятий важнее, чем бесплатно исправлять ваши ошибки.
Ну точно маленький. Ошибки исправляем мы (если они наши). Даже частенько указываем на ошибки/неправильные подходы в говнокоде пользователей. А ты какую-то дурочку включил, я думал ты по-профессиональней...
...
Рейтинг: 0 / 0
18.04.2021, 01:06
    #40063499
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
white_nigger
Есть режимы в которых не поддерживается, но это описано.

Ну, в chm-е по CellAutoHeight этого не описано (по крайней мере в версии, которую я скачивал вместе с либой). Во время поиска я натыкался где-то в тикетах, что он глючит при использовании вместе с CellMerging, но это меня мало беспокоит.

white_nigger
Ошибки исправляем мы (если они наши).

Замечательно. Расскажи, вот чисто теоретически, что я мог бы сделать, чтобы это было моей ошибкой? Ну так чтобы без страшных хаков типа прямой записи в память объекта, подмены VMT и прочего. Вот просто - в дизайн-тайме всё работает. В ран-тайме, допустим даже, я написал несколько дополнительных строк и работать перестало. Вот что это за строки? Поиграть какими-то настройками? Ну так я пойму, если в результате CellAutoHeight просто не будет работать - то есть сохранится одинарная высота строки и текст будет обрезаться. Где-то в тикетах был рецепт сделать все редакторы однострочными memo - ну ок, результат будет тот же. Но вот как мне добиться, чтобы ячейка становилась тройной высоты, а текст оставался однострочным? Я как-то не придумываю, как даже специально такого добиться.

white_nigger
А ты какую-то дурочку включил

А что мне включать, когда я задал простой вопрос, а ты вальяжно пришёл учить меня жизни, даже не прочитав вопроса, но рассказывая банальности с таким видом, будто это ценная информация?
...
Рейтинг: 0 / 0
18.04.2021, 01:24
    #40063501
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer
Замечательно. Расскажи, вот чисто теоретически, что я мог бы сделать, чтобы это было моей ошибкой?
Откуда мне знать? Для этого и делается воспроизводимый пример - на который достаточно пяти минут - кинуть на форму unbound-грид, вставить в него проблемную строчку и проверить CellAutoHeight. Более того я могу сам посмотреть твой случай и вынести вердикт кто виноват - т.е. предлагаю помощь.
И ещё раз по-поводу ошибки - я не знаю есть ли у тебя наследование, пакеты, версию делфы, битность приложения, локаль и т.п. и т.д. Заметь пока ни слова о коде. Например в начальных делфях с поддержкой 64-бит для получения глюков в приложении было достаточно использовать панели с небольшой вложенностью.

Я даже думаю что если ты сделаешь отдельную форму, кинешь грид и прицепишь тот же самый источник данных - ошибка уйдет. По крайней мере за пару десятков лет - я такого насмотрелся
...
Рейтинг: 0 / 0
18.04.2021, 02:07
    #40063506
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
white_nigger
Откуда мне знать?

Так я же не предлагаю тебе назвать ошибку. Я предлагаю чисто теоретически описать - как можно такую внести.

Бегло взглянув на исходники, могу даже подсказать направление. У вас в CellViewInfo есть MultiLine, а есть MultiLinePainting. Не знаю, нафига, но это создаёт почву для того, чтобы они где-то разъехались.

white_nigger
Для этого и делается воспроизводимый пример - на который достаточно пяти минут

И кто из нас как маленький? Ты вот прямо сейчас ответственно заявляешь, что на воспроизводимый пример любой баги достаточно пяти минут? Да блин, иногда найти и исправить ошибку быстрее, чем сделать воспроизводимый пример

white_nigger
И ещё раз по-поводу ошибки - я не знаю есть ли у тебя наследование, пакеты, версию делфы, битность приложения, локаль и т.п. и т.д.

И что из этого относится к моим ошибкам? Но могу успокоить, наследования нет, пакетов нет, дельфа 10.2, win32, русская и т. д.

white_nigger
Я даже думаю что если ты сделаешь отдельную форму, кинешь грид и прицепишь тот же самый источник данных - ошибка уйдет.

Вполне может быть. И что из этого следует, кроме опроверждения твоего "достаточно пяти минут"?
...
Рейтинг: 0 / 0
18.04.2021, 02:13
    #40063507
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer
вот текст остаётся однострочным и обрезается.

1. Если включена обрезка текста (та, что с тремя точками), то никакой автовысоты не будет;
2. Так же центровку текста надо проверить;
3. Там же ограничение на максимальное количество строк в ячейки вдруг включено у грида (для проверки поставить какое-нибудь тип 3);
4. Тип отображаемой колонки у грида (например, label вместо пустого или text стоит);
5. Проверить, чтобы настройки грида не подгружались (настройки колонок, вот это всё);
6. Кастомная отрисовка ячейки написана криво;
7. Может еще что пропустил -- вариантов много может быть, где косяки. Как сказано выше -- без тестового примера нет смысла даже обращаться за помощью.

Но ставлю на то, что запрос написан криво и возвращает левые данные разных типов в одной колонке, из-за чего дб-компоненты неправильно определяют тип колонок, а грид уже неправильно ставит настройки под них (разное поведение в дизайне и рантайме на это намекает). С текстовыми полями таких багов не встречал, а вот со всякими датами/числами -- на раз-два (компоненты UniDAC).

P.S. Так же рекомендую заглянуть в dfm-файл (или просто ctrl+c и потом в текстовом редакторе вставить) -- возможно, какие-то левые настройки установились, сразу будет видно.
...
Рейтинг: 0 / 0
18.04.2021, 03:20
    #40063514
white_nigger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
JayDi, забей))
...
Рейтинг: 0 / 0
18.04.2021, 14:03
    #40063572
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Повторяю, тестовый пример с ИМЕННО тем текстом, который так странно себя ведёт.
...
Рейтинг: 0 / 0
18.04.2021, 14:23
    #40063580
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
Забавно. Я задал простой вопрос: сталкивался ли кто-нибудь с таким поведением. Больше мне ничего не нужно и не было нужно. Ни один ответивший не сталкивался. Двое стали что-то требовать и предъявлять. Я начинаю понимать известную фразу про русскоязычные форумы, она получила наглядное подтверждение.

Спасибо Борису за версию со скинами, которая не пришла мне в голову и спасибо JayDi за перечисление и попытку помочь.
...
Рейтинг: 0 / 0
18.04.2021, 14:36
    #40063585
asutp2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarer,

а что мешает показать пример, в котором воспроизводится ошибка? в этом случае твоя проблема решилась бы максимально оперативно. А так воздух сотрясать проблемы не решает.
...
Рейтинг: 0 / 0
18.04.2021, 14:45
    #40063586
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
asutp2
а что мешает показать пример, в котором воспроизводится ошибка?

То, что "делать воспроизводимый пример" в таком случае явно не пять минут. Если 100500 форм нормально работают, и в одной замечена проблема - значит, на новой чистой форме проблемы 99.99% что не возникнет. И делать воспроизводимый пример придётся методом "взять приложение, убирать из него другие формы, если на единственной этой проблема останется - поочерёдно убирать из неё и так до тех пор, пока либо не получится маленький оторванный пример, либо проблема не исчезнет". В общем, это тот случай, когда сделать воспроизводимый пример и найти ошибку - практически одно и то же.

Ну а много времени я на эту фигню просто не готов тратить. Я посмотрел на грид, подумал "он будет удобнее пользователям, если включить эту опцию", включил, увидел проблему. Я не против десять минут поиграться с настройками, скинами и прочими предположениями, но дальше просто выключил опцию и ушёл. Тратить пол-выходного на борьбу за такую мелочь я не готов.
...
Рейтинг: 0 / 0
18.04.2021, 16:40
    #40063595
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
CellAutoHeight
softwarerЗабавно. Я задал простой вопрос: сталкивался ли кто-нибудь с таким поведением. Больше мне ничего не нужно и не было нужно. Ни один ответивший не сталкивался. Двое стали что-то требовать и предъявлять. Я начинаю понимать известную фразу про русскоязычные форумы, она получила наглядное подтверждение.
Не, тут скорее другой случай - "а осадочек-то остался!" (с)
Ты высказал некую претензию "а не сталкивался ли кто
с таким-то багом", с которым никто не сталкивался и
есть весомые сомнения, что это баг, а не косяк кого-то
на твоей стороне, а в ответ на предложение про пример
и подробности отнекиваешься (не имеет значения - по
делу или безосновательно).

На месте разработчиков продукта и даже его... гм...
"поклонников" у меня была бы похожая реакция.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / CellAutoHeight / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]