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
hmbaloon01.jpg [ 12.74 KiB | Przeglądany 2828 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
hmbaloon02.jpg [ 32.76 KiB | Przeglądany 2801 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

Załączniki:
dynawrapNt.zip [43.75 KiB]
Pobrany 148 razy

Strona 1 z 1 Strefa czasowa UTC+1godz. [letni]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/