Форум » GUI » [?] Простой вопрос » Ответить

[?] Простой вопрос

Dima: Есть главное окно программы , в нем живут несколько CHILD окон (не MDI). В процедуре ON INTERACTIVECLOSE главного окна есть блок кода , если он вернет TRUE тогда закроется главное окно и программа завершится. А вот если блок кода вернул FALSE , то как вернуть фокус ввода на окно на котором был фокус ввода до нажатия крестика главного окна ?

Ответов - 148, стр: 1 2 3 4 5 6 7 8 All

SergKis: Dima пишет: не писать же в INI nDelta для каждого бровса у меня один nDelta на всю прогу и менять пришлось только 1 раз (правда и фонт для всех tsb один на всю прогу) есть др. путь написать resize для tsb и использовать его меняя размеры окна таже можно уст. размеры tsb заранее просчитав (константы для элементов header, line, footer) все высоты tsb и получив общую высоту tsb и установить ее (например от количества строк в tsb)

Dima: SergKis пишет: таже можно уст. размеры tsb заранее просчитав (константы для элементов header, line, footer) все высоты tsb и получив общую высоту tsb и установить ее (например от количества строк в tsb) Понял.

SergKis: Dima пишет:не писать же в INI nDelta для каждого бровса с др. стороны в ini сохраняются все размеры (устанавливает\раздвигает клиент) колонок для каждого бровсе, то добавить nDelta пустяковое дело

Dima: SergKis Согласен.

SergKis: Dima Еще про tsb, "дырку" и HScroll. Высота HScroll в расчетах исп. 16, а в реальности при LargeFont 24 (Андрей проверял по моей просьбе), т.е. с HScroll высота tsb может быть изначально посчитана с ошибкой и nDelta - должна подбираться руками. Я отказался от использования HScroll, поставил lNoHScroll := .T. глобально в своей либе

Dima: SergKis пишет: поставил lNoHScroll := .T. Но тут был подводный камень если не ошибаюсь , после такой установки переставала срабатывать растяжка в :nAdjColumn

SergKis: Dima пишет: переставала срабатывать растяжка в :nAdjColumn Так она работает только на 1-м экране (если не ошибаюсь), так что толку от нее, на мой взгляд, не много, тем более пользователь сам уст. ширину колонок. В hwg сделано, на мой взгляд, лучше - последняя колонка растягивается на остаток ширины бровсе

Dima: SergKis пишет: В hwg сделано, на мой взгляд, лучше - последняя колонка растягивается на остаток ширины бровсе Так и тут так же, только не последняя а та что указана в :nAdjColumn

SergKis: это только на первом экране, после происходит искажение последней колонки (header,line,footer), в hwg нет искажения правой последней колонки

Dima: SergKis пишет: это только на первом экране, после происходит искажение последней колонки не замечал такого

Dima: А как поймать имя бровса в форме .. Имя формы так ThisWindow а бровс ? ps я про альтернативный синтаксис

SergKis: Dima пишет:я про альтернативный синтаксис Tsb мимо него проходит. Как объект tsb получать, см. Tsb_seek_2, Tsb_LoadFields

SergKis: Dima пишет:не замечал такого На след. экранах (при прокрутке HScroll) на короткий остаток колонки впихивается широкая колонка, если в ней superheader, то совсем беда с отображением. По мне лучше делать "управляемый" скролинг - удалять часть колонок (группой) и вставлять группу других, благо это не сложно

Dima: Понял. Спасибо

Dima: Имею xy+=getproperty(ThisWindow.name,"Button_1","Width")+11 Как это переписать не используя getproperty ?

SergKis: Dima пишет:Как это переписать не используя getproperty ? FormName.Button_1.Width GetWindowWidth(GetControlHandle("Button_1", _HMG_ThisFormName))

Andrey: Добавлю 5 копеек про растяжку :nAdjColumn Заметил такую странность, если её использовать, то ширина некоторых колонок начинает сбиваться, срезается. В примере \MiniGUI\SAMPLES\Advanced\Tsb_config приходиться запоминать значение: oBrw:bInit := {|| oBrw:SetColSize( 2, nWidthFirstColumn )} А потом в ResizeBrowse() всегда восстанавливать: Eval(oBrw:bInit) Перестал использовать этот параметр, хотя удобный вроде.

Dima: SergKis пишет: FormName.Button_1.Width Такой вариант не компилится совсем

SergKis: Dima пишет:Такой вариант не компилится совсем ты вместо FormName дал реальное имя окна, на котором Button_1 и их DEFINE уже были. см. Minigui.chm -> ControlsCommand->button в самом конце properties:, events:, metods: тыкаешь Width и т.д. Я в основном пользуюсь от handle получать размеры GetWindow...(handle)

Dima: SergKis пишет: ты вместо FormName дал реальное имя окна Понял , не хотел привязываться точно к имени окна , попробовал так xy+=ThisWindow.name.Button_1.Width+11 Не компилится Плюнул и оставил так xy+=getproperty(ThisWindow.name,"Button_1","Width")+11



полная версия страницы