経過時間(ミリ秒)をフォーマットして表示          <TOP>


ミリ秒で表された数値を経過時間フォーマットで表示します。

StrFromTimerInterval 時間を表す数値を文字列に変換

 

表示桁数(digit)は、xx時間yyzz秒の合計桁数を表します。

 

'================================================================
'= 経過時間(ミリ秒)をフォーマットして表示
'=    (StrFromTimeInterval2.bas)
'================================================================
#include "Windows.bi"

' 時間を表す数値を文字列に変換
Declare Function Api_StrFromTimeInterval& Lib "shlwapi" Alias "StrFromTimeIntervalA" (ByVal pszOut$, ByVal cchMax&, ByVal dwTimeMS&, ByVal dwDigits&)

Var Shared Text(3) As Object
Var Shared Edit(1) As Object
Var Shared Button1 As Object

For i = 0 To 3
    If i < 2 Then
        Edit(i).Attach GetDlgItem("Edit" & Trim$(Str$(i + 1))) : Edit(i).SetFontSize 14
    End If
    Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) : Text(i).SetFontSize 14
Next
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

ShowWindow -1
Cls

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var wTime As Long
    Var digit As Integer
    Var sOut As String
    Var Ret As Long

    Text(3).SetWindowText ""

    sOut = String$(100, 0)

    'ミリ秒取得
    wTime = Val(Edit(0).GetWindowText)

    'xx時間yy分zz秒 表示するxxyyzzの桁数取得
    digit = Val(Edit(1).GetWindowText)

    Ret = Api_StrFromTimeInterval(sOut, Len(sOut), wTime, digit)
    Text(3).SetWindowText sOut
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End