Форум » GUI » ? Пара небольших косяков - NoSize и Label - или что-то не так делаю » Ответить

? Пара небольших косяков - NoSize и Label - или что-то не так делаю

SADSTAR2: 1. Создаю динамически в окне с белым фоном {255,255,255} DEFINE LABEL &bn PARENT wMain COL X2+if(t>9,11,14)+h*(j-1) ROW r1 VALUE alltrim(str(t)) WIDTH h HEIGHT h FONTNAME "Arial" FONTSIZE 9 FONTBOLD .T. TRANSPARENT .T. END LABEL но объект выводится на сером фоне (по-умолчанию?) в отличии от загруженного с такими же параметрами вместе с окном. После операции Minimize - Restore - становится как должно - на белом фоне. Это у всех так? 2. Поставил в окне NoSize=.t. что бы пользователь не мог сам менять размер окна двигаю границы. Но меняю размер окна из программы в зависимости от выбранных данных. Так вот при этом не срабатывает модуль OnSize прописанный для окна. Это такая задумка? P.S.Ну это-то проще исправить - вызывать явно там, где меняется размер окна.

Ответов - 6

gfilatov: SADSTAR2 пишет: объект выводится на сером фоне (по-умолчанию?) в отличии от загруженного с такими же параметрами вместе с окном. При активации окна вызывается функция UpdateWindow ( hWnd ) для перерисовки окна, поэтому все выводится нормально SADSTAR2 пишет: Так вот при этом не срабатывает модуль OnSize прописанный для окна. Это такая задумка? Видимо, так работает WinAPI: не выдает запрос на событие изменения формы, если установлено, что размер окна не должен изменяться пользователем

SADSTAR2: Маэстро, вы неправы чистый тестовый пример #include <minigui.ch> function Main() DEFINE WINDOW wMain ; AT 167,340 ; HEIGHT 400 ; WIDTH 474 ; TITLE "New Form" ; ICON "" ; MAIN ; NOMAXIMIZE ; NOSIZE ; CURSOR "" ; BACKCOLOR {255,255,255} ; FONT "Arial" SIZE 9 DEFINE BUTTON BUTTON_1 COL 220 ROW 320 WIDTH 210 HEIGHT 30 CAPTION "Create label" PICTURE Nil ICON Nil ACTION Create_label() FONTNAME "Arial" FONTSIZE 10 FONTBOLD .F. FONTITALIC .F. FONTUNDERLINE .F. FONTSTRIKEOUT .F. FONTCOLOR Nil ONGOTFOCUS Nil ONLOSTFOCUS Nil HELPID Nil FLAT .F. TABSTOP .T. TRANSPARENT .F. TOOLTIP Nil VISIBLE .T. DEFAULT .F. END BUTTON END WINDOW center window wMain activate window wMain return Nil //-------------------------------- static function create_label() if IsControlDefined(lbl_proba, wMain) wMain.lbl_Proba.Release() do events endif DEFINE LABEL lbl_proba PARENT wMain COL 20 ROW 20 VALUE 'Ïðîâåðêà äèíàìè÷åñêîãî âûâîäà '+time() WIDTH 300 HEIGHT 20 FONTNAME "Arial" FONTSIZE 9 FONTBOLD .T. TRANSPARENT .T. END LABEL return Nil

gfilatov: SADSTAR2 пишет: чистый тестовый пример На моей конфигурации Win98SE/Harbour 1.0.0/MiniGUI Ext. build 54 проблем с отображением текста на белом фоне нет


SADSTAR2: Странно. Я вроде тоже с Harbour MiniGUI 1.5 Extended Edition (Build 54) - 2008.07.30 но под XP ! Проверил на 4-х компах с XP - косяк. Нашел комп с 98 - там все ОК !!!! И как с этим бороться под XP?

gfilatov: SADSTAR2 пишет: как с этим бороться под XP? Рабочий пример: #include <minigui.ch> function Main() DEFINE WINDOW wMain ; AT 167,340 ; HEIGHT 400 ; WIDTH 474 ; TITLE "New Form" ; ICON NIL ; MAIN ; NOMAXIMIZE ; NOSIZE ; CURSOR NIL ; BACKCOLOR {255,255,255} ; FONT "Arial" SIZE 9 DEFINE BUTTON BUTTON_1 COL 220 ROW 320 WIDTH 210 HEIGHT 30 CAPTION "Create label" PICTURE Nil ICON Nil ACTION Create_label() FONTNAME "Arial" FONTSIZE 10 FONTBOLD .F. FONTITALIC .F. FONTUNDERLINE .F. FONTSTRIKEOUT .F. FONTCOLOR Nil ONGOTFOCUS Nil ONLOSTFOCUS Nil HELPID Nil FLAT .F. TABSTOP .T. TRANSPARENT .F. TOOLTIP Nil VISIBLE .T. DEFAULT .F. END BUTTON END WINDOW center window wMain activate window wMain return Nil //-------------------------------- static function create_label() if IsControlDefined(lbl_proba, wMain) wMain.lbl_Proba.Release() do events endif DEFINE LABEL lbl_proba PARENT wMain COL 20 ROW 20 VALUE 'Текущее время '+time() WIDTH 300 HEIGHT 20 FONTNAME "Arial" FONTSIZE 9 FONTBOLD .T. TRANSPARENT .T. END LABEL //-------------------------------- wMain.lbl_proba.refresh // <---- //-------------------------------- return Nil

SADSTAR2: Ок. Работает.



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