powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / значение Height контрола c Height.AutoSize
15 сообщений из 15, страница 1 из 1
значение Height контрола c Height.AutoSize
    #32571459
leyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PB 7.0.2

Проблема:

Необходимо на этапе исполнения выяснить, каково значение Height контрола в Datawindow, у которого задан параметр Height.AutoSize.

Вариант с функцией RowHeight () не подходит, так как мне нужно знать не размер ряда, а размеры отдельных объектов.
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32572702
pb1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
pb1
Гость
А если попробовать dw.describe("controlname.Height" )?
С уважением, гость.
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32572774
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pb1 , а что, когда параметр Height.AutoSize НЕ задан, по другому как то?
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32573030
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял что нужно знать высоту объекта для конкретной строки?

Тогда так: dw_1.Describe("evaluate('col1.Height'," + dw_1.GetRow() + ")")
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32573149
leyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andyn, pb1:

Height.AutoSize установлен в true

--------
Двудвневной копание в инете не дали ничего. Несколько раз на подобные вопросы на других ворумах отвечали "невозможно"

Очень удивлён.

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

Этот путь меня пугает. Неужели нет другого способа?
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32573157
leyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ха-ха "форум-ворум" , что-то в этом есть.
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32573261
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задачка действительно интересная :-)
В порядке обсуждения направления движения, предлагаю примерно следующее:
1. Установить заданное поле текущим - SetColumn()
2. Определить его handle - у редактируемого поля DW handle есть - скажем FindWindowEx, ChildWindowFromPoint или что-нибудь подобное
3. Воспользоваться функцией GetClientRect для получения размеров
4. Пересчитать в PBUnits
5. Наслаждаться результатом :-)

Если есть добровольцы, готовые провести подобные изыскания - welcome :-))
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32573278
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕдинственный выход, который я вижу - это вычислять самому, как саутосайзится объект исходя из его содержимого и остальных параметров.
Есть вариация на тему - завести дополнительное DataWindow в котором разместить только тот самый autosize'ящийся объект и вычислять его высоту при помощи, к примеру, той же RowHeight(). Несколько кривовато, но должно работать. А вычислять высоту самому - нужно знать алгоритм, по которому это делает PB, а то так можно и ошибиться.
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32574799
Andyn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leykaAndyn, pb1:

Height.AutoSize установлен в true

--------
Двудвневной копание в инете не дали ничего. Несколько раз на подобные вопросы на других ворумах отвечали "невозможно"


Давайте внесем ясность. Height.AutoSize установлен в true у всех объектов в строке? Если так, то почему RowHeight() не подходит? И откуда именно нужно узнать высоту объекта - в самом DW или из скрипта? Может расскажете чуть-чуть подробнее? :)
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32575028
Локшин Марк
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДавайте внесем ясность. Height.AutoSize установлен в true у всех объектов в строке? Если так, то почему RowHeight() не подходит?
Потому, что таким образом не узнать высоту любого объекта в detail.
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32575102
leyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Andyn:

1. Нет, аутосайз установлен не у всех
2. Я обрабатываю немеренные отчёты с чёрт знает как сделанными, чёрт знает как вложенными, абсолютно разными и абсолютно неизвестными мне датавиндами. То есть вопросы универсальности и скорости обработки в расчёте на один контрол очень важны.

to PL99, Локшин Марк:

Спасибо, классные идеи! Постараюсь реализовать обе и взять ту, которая быстрее работает.
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32575111
leyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Andyn:

>> в самом DW или из скрипта?

Из скрипта. А что значит "в самом DW" ?
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32575570
leyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99Задачка действительно интересная :-)
В порядке обсуждения направления движения, предлагаю примерно следующее:
1. Установить заданное поле текущим - SetColumn()
2. Определить его handle - у редактируемого поля DW handle есть - скажем FindWindowEx, ChildWindowFromPoint или что-нибудь подобное
3. Воспользоваться функцией GetClientRect для получения размеров
4. Пересчитать в PBUnits
5. Наслаждаться результатом :-)

Если есть добровольцы, готовые провести подобные изыскания - welcome :-))

Проверил, всё работает.
Есть только одна проблема: этот способ работает только для "editable"-объектов. У остальных объектов своего handle нет.
Получается, что этот способ не подходит.
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32576610
Guest_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Height.AutoSize DataWindow object property применяется для следующих объектов: Column, Computed Field, Report, and Text controls .

Для какого из этих объектов вы не можите получить значение Height ?
...
Рейтинг: 0 / 0
значение Height контрола c Height.AutoSize
    #32576785
leyka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор
Height.AutoSize DataWindow object property применяется для следующих объектов: Column, Computed Field, Report, and Text controls.

Для какого из этих объектов вы не можите получить значение Height?


Всех четырех.
Правда со всеми, кроме Report я уже разобрался. Просто сам вычисляю, исходя из параметров объкта и текста внутри.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / значение Height контрола c Height.AutoSize
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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