On-line: Andrey, гостей 0. Всего: 1 [подробнее..]
АвторСообщение





Пост N: 45
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 11.11.09 17:08. Заголовок: Глюки при прорисовке формы...


Здравствуйте ! У меня возникла проблема при растягивании формы.
Появляются графические баги:
Скрытый текст


Функция, растягивающая форму (Процедура ON SIZE ):
FUNCTION Form_OnSize()
LOCAL nI
CD7000.Tab_1.Width := CD7000.Width / 1.04
CD7000.Image_1.Width := CD7000.Width / 0.98
CD7000.TBrowse_1.Width := CD7000.Tab_1.Width / 1.09


CD7000.Image_1.Height := CD7000.Height / 2.95
CD7000.Tab_1.Row := CD7000.Height / 2.85
CD7000.Tab_1.Height := CD7000.Height / 1.88
CD7000.TBrowse_1.Height := CD7000.Tab_1.Height / 1.18
// TBrowse_1:HideColumns({1,2,3,4,5,6},.T.)
RETURN( Nil )


В чём проблема ? Почему форма не перерисовывается ?

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 7 [только новые]


модератор




Пост N: 1089
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 11.11.09 17:36. Заголовок: SkyNET пишет: В чём..


SkyNET пишет:

 цитата:
В чём проблема ?


Проблема в том, что окну надо подсказать о необходимости перерисовки
Для этого можно использовать в конце функции Form_OnSize()

InvalidateRect(GetFormHandle("CD7000"), 1 )
UpdateWindow( GetFormHandle("CD7000") )


Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 46
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 11.11.09 18:39. Заголовок: :sm15: Спасибо боль..


Спасибо большое, все работает...
А ак определить, что окно перестали растягивать (отпустили кнопку мышки) ?
События отпускания мыши я к сожалению не нашел

Спасибо: 0 
ПрофильЦитата Ответить
модератор




Пост N: 1091
Зарегистрирован: 25.05.05
ссылка на сообщение  Отправлено: 11.11.09 19:06. Заголовок: SkyNET пишет: Событ..


SkyNET пишет:

 цитата:
События отпускания мыши


Можно проверить статус кнопок мыши, который хранится в глобальной переменной _HMG_MouseState
Значение _HMG_MouseState = 0 соответствует отжатой левой кнопке.

Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 48
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 11.11.09 23:11. Заголовок: IF _HMG_MouseState =..


IF _HMG_MouseState = 0
InvalidateRect(GetFormHandle("CD7000"), 1 )
UpdateWindow( GetFormHandle("CD7000") )
ENDIF


Я вас правильно понял ?
Но это событие работает почему-то всегда и другие состояния _HMG_MouseState в ON SIZE не имеют...

Или как можно избавиться от белых полосок (некоторые размеров с квадрат) по всей форме ?


Спасибо: 0 
ПрофильЦитата Ответить





Пост N: 50
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 13.11.09 01:10. Заголовок: Я понял, проблема фо..


Я понял, проблема форма не успевает перерисоваться, поэтому полоска...
А как отключить визуальный эффект растягивания ?
Ну как в Windows с отключенными графическими эффектами, только рамка...

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник


Пост N: 750
Зарегистрирован: 09.10.06
ссылка на сообщение  Отправлено: 13.11.09 11:54. Заголовок: MiniGUI в стандартно..


MiniGUI в стандартной поставке умеет обрабатывать WM_SIZE.
Попросите Григория добавить обработку WM_ENTERSIZEMOVE, WM_EXITSIZEMOVE или используйте свой собственный обработчик событий и будет вам счастье


Спасибо: 1 
ПрофильЦитата Ответить





Пост N: 51
Зарегистрирован: 23.06.08
ссылка на сообщение  Отправлено: 13.11.09 22:32. Заголовок: Спасибо. Я нашёл тем..


Спасибо.
Я нашёл тему, как это сделать.
Всё сделал, только с библиотекой i_window.ch какие-то проблемы.
Пример из темы, выдаёт следующую ошибку:
Error BASE/1066 Argument error: conditional

Called from _DEFINEWINDOW(233)
Called from MAIN(12)


Обычные приложения нормально компилируются.
Вот то, что получилось у меня:
Скрытый текст


Я не понимаю, библиотека поменялась, появилось новое действие и поменялись местами Declare и Define:
=>;
DECLARE WINDOW <w> ;;
DECLARE CUSTOM COMPONENTS <w> ;;
_DefineWindow ( <"w">, <title>, <col>, <row>, <wi>, <h>, <.nominimize.>, <.nomaximize.>, <.nosize.>, <.nosysmenu.>, <.nocaption.>,.F., '',<{InitProcedure}>, <{ReleaseProcedure}> , <{MouseDragProcedure}>, <{SizeProcedure}> , <{ClickProcedure}> , <{MouseMoveProcedure}>, [<backcolor>] , <{PaintProcedure}> , <.noshow.> , <.topmost.> , <.main.> , <icon> , <.child.> , <FontName> , <FontSize>, <NotifyIcon> , <NotifyIconTooltip> , <{NotifyLeftClick}> , <{GotFocusProcedure}>, <{LostFocusProcedure}> , <vHeight> , <vWidth> , <{scrollleft}> , <{scrollright}> , <{scrollup}> , <{scrolldown}> , <{hScrollBox}> , <{vScrollBox}> , <.helpbutton.> , <{MaximizeProcedure}> , <{MinimizeProcedure}> , <cursor> , <.noautorelease.> , <{interactivecloseprocedure}> , <{RestoreProcedure}> , <{MoveProcedure}> , <.mdi.>, <{EnterSizeMoveProcedure}>, <{ExitSizeMoveProcedure}> )


Петр пишет:

 цитата:
=>;
_DefineWindow ( <"w">, <title>, <col>, <row>, <wi>, <h>, <.nominimize.>, <.nomaximize.>, <.nosize.>, <.nosysmenu.>, <.nocaption.>,.F., '',<{InitProcedure}>, <{ReleaseProcedure}> , <{MouseDragProcedure}>, <{SizeProcedure}> , <{ClickProcedure}> , <{MouseMoveProcedure}>, [<backcolor>] , <{PaintProcedure}> , <.noshow.> , <.topmost.> , <.main.> , <icon> , <.child.> , <FontName> , <FontSize>, <NotifyIcon> , <NotifyIconTooltip> , <{NotifyLeftClick}> , <{GotFocusProcedure}>, <{LostFocusProcedure}> , <vHeight> , <vWidth> , <{scrollleft}> , <{scrollright}> , <{scrollup}> , <{scrolldown}> , <{hScrollBox}> , <{vScrollBox}> , <.helpbutton.> , <{MaximizeProcedure}> , <{MinimizeProcedure}> , <cursor> , <.noautorelease.> , <{interactivecloseprocedure}> , <{RestoreProcedure}> , <{MoveProcedure}> , <.mdi.>, <{EnterSizeMoveProcedure}>, <{ExitSizeMoveProcedure}> ) ;;
DECLARE WINDOW <w>


Пробовал переставлять, всё равно не работает...

Редактированные файлы

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 701
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет