kategorie: ANSI C, MUI
[#1] MUI while() problemów c.d.
Dlaczego metoda SetAsString znajdująca się w głównej pętli while() przestaje aktualizować textgadget gdy okienko programu jest nieaktywne i nie znajduje się nad nim wskaźnik myszki? Właściwie to chodzi tylko o ten wskaźnik myszki, bo gdy okienko jest nieaktywne i umieszczę nad nim wskaźnik myszki na chwilę, to na tę chwilę textgadget jest aktualizowany.
Poniżej kluczowy początek pętli:

while (running)
		{
			time(&ptr_sec);
			h = localtime(&ptr_sec)->tm_hour;
			m = localtime(&ptr_sec)->tm_min;
			s = localtime(&ptr_sec)->tm_sec;
			DoMethod(tx_clock, MUIM_SetAsString, MUIA_Text_Contents, "%02d:%02d:%02d", h, m, s);
[#2] Re: MUI while() problemów c.d.

@R-Tea, post #1

Główna pętla MUI tkwi w Wait() dopóki nie dostanie jakiegoś sygnału. W standardowej pętli są to sygnały z Intiution. Gdy okno jest nieaktywne i gdy wskaźnik myszki się nad nim nie znajduje, żadne sygnały z Intuition nie nadchodzą. Jeżeli chcesz mieć zegarek w oknie, musisz wymusić wykonywanie głównej pętli w regularnych odstępach czasu, korzystając z timer.device.
[#3] Re: MUI while() problemów c.d.

@Krashan, post #2

Ostatnio wpadł mi w oko atrybut Time klasy Area, ale jeszcze nic z nim nie próbowałem.
Czy mogę do tego jakoś wykorzystać?
[#4] Re: MUI while() problemów c.d.

@R-Tea, post #3

Tak, możesz. Jeżeli ustawisz na niego notyfikację, to będzie wykonywana w regularnych odstępach czasu. Co prawda ona korzysta z INTUITICKS, a te nie wiem czy są wysyłane, jeżeli okno jest nieaktywne.
[#5] Re: MUI while() problemów c.d.

@Krashan, post #4

Na jakim obiekcie założyć tę notyfikację? Autodocs sugerują jakoby atrybut Timer należał tylko do przycisków (relverify button), które są przecież jedymi z wielu subklas Area.
Założyłem notyfikację najpierw na przycisk, później textgadget. Akcją po każdym wywołaniu miało być ReturnID kierujące na case w switch-u.
Na ten konkretny case, w ten sam sposób, kierowała wcześniej notyfikacja założona na MUIA_Clock_Second klasy Clock.mcc i wszystko działało do momentu schowania (MUIA_ShowMe, FALSE) zegarka.
Niestety, po zastąpieniu notyfikacji na MUIA_Clock_Second notyfikacją na MUIA_Timer w/w case przestaje się w ogóle wykonywać.
tx_clock to TextObject.

DoMethod(muiclock, MUIM_Notify, MUIA_Clock_Second, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_SEC);
DoMethod(tx_clock, MUIM_Notify, MUIA_Timer, MUIV_EveryTime, app, 2, MUIM_Application_ReturnID, ID_SEC);
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem