TIMER in a CLASS

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

Post Reply
User avatar
AUGE_OHR
Posts: 2117
Joined: Sun Aug 25, 2019 3:12 pm
DBs Used: DBF, PostgreSQL, MySQL, SQLite
Location: Hamburg, Germany

TIMER in a CLASS

Post by AUGE_OHR »

hi,

how can i use a TIMER in a CLASS :?:

Code: Select all

   oWin := "VLCAXWIN_" + STRZERO( i, 3 )
   oControl := "AXCTRL_" + STRZERO( i, 3 )
   cTimer   := "Timer_"+ STRZERO( i, 3 )

   DEFINE WINDOW &oWin ;
      ...
      DEFINE ACTIVEX &oControl
      ... 
      END ACTIVEX

      DEFINE TIMER &cTimer of &oWin INTERVAL 10 ACTION IF(!EMPTY(oVLC), DoCheckTimer(ThisWindow.Name) , nil)

   END WINDOW
Control: Timer_016 Of VLCAXWIN_016 Not defined. Program Terminated
have fun
Jimmy
User avatar
gfilatov
Posts: 1116
Joined: Fri Aug 01, 2008 5:42 am
Location: Ukraine
Contact:

Re: TIMER in a CLASS

Post by gfilatov »

AUGE_OHR wrote: Tue May 24, 2022 2:40 pm hi,

how can i use a TIMER in a CLASS :?:
Hi,

May be

Code: Select all


  DATA  cTimer
  ...
   oWin := "VLCAXWIN_" + STRZERO( i, 3 )
   oControl := "AXCTRL_" + STRZERO( i, 3 )
   ::cTimer   := "Timer_"+ STRZERO( i, 3 )

   DEFINE WINDOW &oWin ;
      ...
      DEFINE ACTIVEX &oControl
      ... 
      END ACTIVEX

      DEFINE TIMER &( ::cTimer ) of &oWin INTERVAL 10 ACTION IF(!EMPTY(oVLC), DoCheckTimer(ThisWindow.Name) , nil)

   END WINDOW
:?:
Kind Regards,
Grigory Filatov

"Everything should be made as simple as possible, but no simpler." Albert Einstein
User avatar
AUGE_OHR
Posts: 2117
Joined: Sun Aug 25, 2019 3:12 pm
DBs Used: DBF, PostgreSQL, MySQL, SQLite
Location: Hamburg, Germany

Re: TIMER in a CLASS

Post by AUGE_OHR »

hi Grigory,

my last Message was not clear

it "seems" that TIMER did not work when "Set" in Main when have a ActiveX
i need to use TIMER "in" CLASS where i can have Multi-Instance

Code: Select all

   oVlc := TVlc() :New( GetProperty( oWin, oControl, "Object" ), oWin )

METHOD New( oControl, oWin ) CLASS TVlc
LOCAL cTimer    := "Timer_VLC"
  ...
  ::oWin := oWin
  ... 
  ::lRun := .F.
  DEFINE TIMER &cTimer of &oWin INTERVAL 100 ACTION ::ShowRunThread()

Code: Select all

METHOD Destroy() CLASS TVlc
   IF IsControlDefined( Timer_VLC, ::oWin )
      DoMethod( ::oWin, "Timer_VLC", "Release" )
   ENDIF

Code: Select all

METHOD ShowRunThread() CLASS TVlc

IF ::lRun = .T.
   nPlayState := ::State()
   ...
   CASE nPlayState = VLC_INPUT_STATE_PLAYING
      nDuration := INT( ::GetLength() / 1000 )
      IF !EMPTY( nDuration )
         IF nPosi >= nDuration - 1
            ::Stop()
            ::lRun = .F.
            IF SP_Loop() = .T.
              ::SetTime( 0 )
              ::Play()
            ELSEIF SP_Endless()  = .T.
              // SENDKEY( VK_NEXT )
              ::Play_Next()
            ENDIF
have fun
Jimmy
Post Reply