mojaSymfonia FORUM https://forum.mix-soft.pl/ |
|
message timesup https://forum.mix-soft.pl/viewtopic.php?f=15&t=4833 |
Strona 1 z 1 |
Autor: | supersebek [ 2013-03-26, 17:56 ] |
Tytuł: | message timesup |
Chciałbym, aby message się wyświetlał przez jakiś określony czas w sekundach. Po tym czasie żeby zniknał coś w rodzaju popup. Potrzebne mi to jest w FORTE 2011 |
Autor: | rafal [ 2013-03-27, 16:01 ] |
Tytuł: | Re: message timesup |
skąd będzie wywoływany? |
Autor: | Misiek [ 2013-03-27, 22:15 ] |
Tytuł: | Re: message timesup |
supersebek pisze: Chciałbym, aby message się wyświetlał przez jakiś określony czas w sekundach. Po tym czasie żeby zniknał coś w rodzaju popup. Potrzebne mi to jest w FORTE 2011 W AmBasic'u nie ma polecenia sleep czy też innego, alternatywnego - pozostaje jakaś pętelka i zabawa z funkcją Time, coś takiego może nawet zadziałać |
Autor: | rafal [ 2013-03-27, 23:03 ] |
Tytuł: | Re: message timesup |
Można użyć aplikacji wywoływanej z CMD do wświetlenia dymka. Załącznik: hmbaloon01.jpg [ 12.74 KiB | Przeglądany 2953 razy ] |
Autor: | rafal [ 2013-03-28, 12:24 ] |
Tytuł: | Re: message timesup |
Misiek pisze: supersebek pisze: Chciałbym, aby message się wyświetlał przez jakiś określony czas w sekundach. Po tym czasie żeby zniknał coś w rodzaju popup. Potrzebne mi to jest w FORTE 2011 W AmBasic'u nie ma polecenia sleep czy też innego, alternatywnego - pozostaje jakaś pętelka i zabawa z funkcją Time, coś takiego może nawet zadziałać Propozycja funkcji Sleep w AmBasicu Kod: int sub sleep(int iSec) buf = Data() + " " + Time() find regular "^{*}/--{*}/--{*} {*}/:{*}/:{*}$" long lStart = (val(regular 3) * 60 * 60 * 24 ) + (val(regular 4) * 60 * 60) + (val(regular 5) * 60) + (val(regular 6)) long lStop = lStart while (lStop - lStart) < iSec buf = Data() + " " + Time() find regular "^{*}/--{*}/--{*} {*}/:{*}/:{*}$" lStop = (val(regular 3) * 60 * 60 * 24 ) + (val(regular 4) * 60 * 60) + (val(regular 5) * 60) + (val(regular 6)) wend endsub Ale jak rozwiązać zamykanie okna po czasie to nie mam na razie pomysłu. |
Autor: | matrix-1990 [ 2013-03-28, 22:50 ] |
Tytuł: | Re: message timesup |
możesz napisać sleepa np w języku c++ i wywołać ten program z poziomu ambasica |
Autor: | rafal [ 2013-03-29, 01:00 ] |
Tytuł: | Re: message timesup |
Temat nie daje mi spokoju :) Przetestowałem zewnętrzną kontrolkę RSTimer. Wygląda na to, że efekt został osiągnięty. Niestety kontrolka musi być zarejestrowana na każdym stanowisku z FORTE. W przykładzie pokazuje się okienko i znika za 3 sek chyba, że użytkownik wciśnie OK. Dodatkowo popup nie blokuje programu w trakcie pokazywania się (mimo, że pozostaje ontop) Kod: int butOK dispatch dTimer int sub OnCommand(int id, int msg) if id == 0 && msg == 0 then dTimer.Interval = 3000 dTimer.Enabled = 1 endif endsub int sub dTimer_Timer(dispatch q) dTimer.Enabled = 0 SendDlgItemMessage( butOk, 0x0201) SendDlgItemMessage( butOk, 0x0202) endsub FORM "PopUp Window", 200, 100 butOK = BUTTON "OK",50,50,100,20, -1 CONTROL "RSTIMER.RSTimerCtrl", dTimer, 5,5,10,10 ExecForm(OnCommand, -1) Załącznik: hmbaloon02.jpg [ 32.76 KiB | Przeglądany 2926 razy ] |
Autor: | rafal [ 2013-06-26, 13:41 ] |
Tytuł: | Re: message timesup |
rafal pisze: Propozycja funkcji Sleep w AmBasicu Kod: int sub sleep(int iSec) buf = Data() + " " + Time() find regular "^{*}/--{*}/--{*} {*}/:{*}/:{*}$" long lStart = (val(regular 3) * 60 * 60 * 24 ) + (val(regular 4) * 60 * 60) + (val(regular 5) * 60) + (val(regular 6)) long lStop = lStart while (lStop - lStart) < iSec buf = Data() + " " + Time() find regular "^{*}/--{*}/--{*} {*}/:{*}/:{*}$" lStop = (val(regular 3) * 60 * 60 * 24 ) + (val(regular 4) * 60 * 60) + (val(regular 5) * 60) + (val(regular 6)) wend endsub Inna propozycja jak mogłaby wyglądać funkcja Sleep Kod: int sub Sleep(int iSec) dispatch ws = "WScript.Shell" ws.Run((using "%%COMSPEC%% /c ping 127.0.0.1 -n %l",iSec),0,1 ) endsub Sleep(5) |
Autor: | rafal [ 2013-07-11, 15:21 ] | ||
Tytuł: | Re: message timesup | ||
I jeszcze jeden sposób na Sleep Kod: long sub Sleep(long l_msec) dispatch dw = "DynamicWrapper" dw.Register("KERNEL32.DLL", "Sleep", "i=l", "f=s", "r=l") dw.Sleep(l_msec) endsub Z tym, że ten wymaga doinstalowania komponentu DynamicWrapper
|
Strona 1 z 1 | Strefa czasowa UTC+1godz. [letni] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |