|
|
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
Помещаем на форму любой контрол и задаем ему размеры больше видимой области окна. Если использовать ClientRect то получим размеры видимой области, а надо получить размер всей области, в том числе и за границами окна. Вот где это лежит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 19:36 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъВот где это лежит? VertScrollBar, HorzScrollBar. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 19:45 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, BoundsRect? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 19:50 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
Страдалецъ, Обходи всех детей контрола и объединяй их границы. Описывающий прямоугольник и будет ответом. Разумеется это не будет работать, если границы клиентской части виртуальные, а-ля грид ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 21:41 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
поместил на форму кнопку, с обработчиком Код: pascal 1. 2. 3. 4. 5. 6. 7. нажимаю, вижу ширину W. Cужаю форму так, чтобы кнопка выходила за ее пределы, нажимаю - все равно вижу ширину W. Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 22:49 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
VertScrollBar, HorzScrollBar? Как именно вы предполагаете их использовать для получения нужных размеров? BoundsRect как и ClientRect дают информации о видимой части окна, так-что не катит. Обходить все контролы уж очень не хочется, но видимо все-же придется, я собственно по причине лени это делать и задал вопрос на форуме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 23:25 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
Если только поднять исходники для скролов и там посмотреть откуда они берут данные. Надо попробовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 23:27 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
КвейдCужаю форму так, чтобы кнопка выходила за ее пределы, нажимаю - все равно вижу ширину W. Что я делаю не так? Я так понимаю, что ему нужен размер формы в этом примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 23:35 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъVertScrollBar, HorzScrollBar? Как именно вы предполагаете их использовать для получения нужных размеров? Чтиние исходников и документации никто не запрещал. При TForm.AutoScroll = True нужные значения будут в *ScrollBar.Range http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/delphivclwin32/Forms_TControlScrollBar_Range.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2018, 23:59 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
Квейд это для меня что-ли пример был? Так он не в ту степ. Тут вот в чем проблема - на форме у меня лежит растягиваемый компонент, и когда он изменяет свои размеры, то содержимое формы бодро уползает за границу формы, несмотря на выставленный флаг AutoSize для формы. Вот я и хочу узнать размеры этой виртуальной оконной области, которые VertScrollBar, HorzScrollBar как-то используют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 00:47 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
авторПри TForm.AutoScroll = True нужные значения будут в *ScrollBar.Range Если вы о TForm.VertScrollBar.Range, то нет, ожидаемого размера по вертикали не получаем, возвращается всегда 0, хотя и флаг выставлен и скролбар и имеется на форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 01:01 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъТут вот в чем проблема - на форме у меня лежит растягиваемый компонент, и когда он изменяет свои размеры, то содержимое формы бодро уползает за границу формы, несмотря на выставленный флаг AutoSize для формы. Ну и забей на эту автоматику, делай изменение ручками в OnResize. Оно, заодно, глаже получится. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 01:09 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
Так я и хочу его сделать, но для этого надо знать новый размер, а вот с этим то и проблема и тут мы возвращаемся к исходному вопросу в теме. Я в общем-то сделал такую простенькую функцию, она пока работает без учета бордюра и заголовков окна, да и проверок на несоответствие класса нет, но для моей формы работает вроде корректно: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 17:02 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъТак я и хочу его сделать, но для этого надо знать новый размер, а вот с этим то и проблема и тут мы возвращаемся к исходному вопросу в теме. И тут мы возвращаемся к третьему ответ в этой теме: устанавливай размер клиентской области формы в суммарный размер всех необходимых тебе компонентов на ней: Код: sql 1. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 17:31 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
Зачем же мне складывать отдельно высоту элементов, к тому-же они могут быть расположены и горизонтально и вертикально на форме и это надо учитывать для получения общей высоты. Куда проще и правильнее использовать объединение всех прямоугольников с получением общего прямоугольника охватывающего все элементы. Для этого я и использую Rect.Union() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 21:51 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъЗачем же мне складывать Затем, что это быстрее и проще. Но хочешь страдать - страдай. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 21:57 |
|
||
|
Как получить размеры внутренней области окна?
|
|||
|---|---|---|---|
|
#18+
СтрадалецъЕсли вы о TForm.VertScrollBar.Range, то нет, ожидаемого размера по вертикали не получаем, возвращается всегда 0, хотя и флаг выставлен и скролбар и имеется на форме. Код в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2018, 22:52 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39748441&tid=2039998]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 371ms |

| 0 / 0 |
