C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■4948  Re[3]: Timer.Interval プロパティの制限について
□投稿者/ 渋木宏明(ひどり) -(2007/06/29(Fri) 12:08:48)
>
    2007/06/29(Fri) 12:33:24 編集(投稿者)

    > いままで、コンパイラの動作というのものを理解しようとしていませんでした。
    > それなのに、エラーや警告が出ないと言ってしまっては、叱られても当然のことですね。
    > ご指摘くださりありがとうございます。

    別に叱っちゃいません。
    注意を喚起しただけのつもりです。

    > 新しい版のヘルプに書かれている値域を守るべきとのご指摘をくださいましたが、
    > 今回の件、System.Windows.Forms.Timer コンポーネントの Interval プロパティ特有の制限かと思い質問しました。
    >
    > ただ、System.Windows.Forms.Timer コンポーネント自体、Windows OS のタイマ・メッセージ(WM_TIMER メッセージ)をベースにしているとのことなので、
    > http://www.atmarkit.co.jp/fdotnet/dotnettips/372formstimer/formstimer.html
    >
    > MSDN のドキュメントの『Windows フォームの Timer コンポーネントの Interval プロパティの制限』はさておき、
    > http://msdn2.microsoft.com/ja-jp/library/xy0zeach(VS.80).aspx
    >
    > 『より新しい版であるだろう、英語版の MSDN Library の記述』を参考にし、それを守るべきなのでしょうか?
    > http://msdn2.microsoft.com/en-us/library/ms644906.aspx

    「何を守るべきか」の既定があるわけではないので、最終的にはお好きなように。

    SetTimer() のヘルプトピックの最大値がいくつかはまだ調べていませんが、個人的には、安全方向に倒すことを重視するので、最大値として示されている「より小さいほうの値」を最大値として扱うと思います。

    でも、おそらくそんな値を調べることは今後も無さそうです。

    数分以上の間隔があるならば、自分ならタイマーではなく時刻監視かタスクマネージャを使うので。
記事No.4917 のレス /過去ログ15より / 関連記事表示
削除チェック/

■51943  Re[2]: テキストデータの書き出しについて教えてください。
□投稿者/ 裕猫 -(2010/07/27(Tue) 08:22:08)
    No51933 (はつね さん) に返信
    > ■No51896 (裕猫 さん) に返信
    >>ファイルを追加モードで開いて書き込むと、時折余分な空白行が入ったりすることがあるので
    >>いまいち使いたくないし
    >
    > それってたんに、裕猫さんが使い方間違えてバグっているだけじゃ?
    >
    たぶんそうでしょう。でもどう間違えているのかがつきとめられませんので現状ぼくには使えません。必ずなるならわかるんですが。同じプログラム繰り返しても出るときと出ないときがある。ので原因が特定できません。
記事No.51896 のレス /過去ログ87より / 関連記事表示
削除チェック/

■73693  Re[10]: VBで指定した画像への左クリック
□投稿者/ 魔界の仮面弁士 -(2014/10/23(Thu) 14:15:54)
    No73691 (優希(ゆき) さん) に返信
    > HTML解析するしか無いと思う。

    No73671 の発言を見ると
    >>> 最近買ったオフゲー
    とあったので、スタンドアロンの無通信ゲームを想像していました。


    これがオンラインのゲームだとして、HTTP 通信の中に十分な情報が
    含まれているのだとすれば、FiddlerCore を利用できるかもしれませんね。
    今回の案件で使えるかどうかは別として。
    http://www2.hatenadiary.jp/entry/20131208/1386528611
記事No.73618 のレス /過去ログ123より / 関連記事表示
削除チェック/

■86528  Re[14]: ChartのX軸のタイトル表示
□投稿者/ shu -(2018/02/08(Thu) 17:23:41)
    No86526 (mako さん) に返信
    
    ポイントの追加は
                    If disp Then
                        'ret.Rows.Add(d, row("数量1"), row("数量2"))
                        ret.Rows.Add(x, d, row("数量1"), row("数量2"))
                        x += 5
                    End If
    ここで行っているので
    これを他に移動すると動作がおかしくなると思います。
    このポイントの追加の前に条件判定で空白を追加すればよい気がします。
記事No.86333 のレス /過去ログ148より / 関連記事表示
削除チェック/

■86530  Re[15]: ChartのX軸のタイトル表示
□投稿者/ mako -(2018/02/08(Thu) 23:29:02)
    No86528 (shu さん) に返信
          
          '間
                If Not isFirst2 Then
                    For i = 1 To 2
                        ret.Rows.Add(x, DBNull.Value, DBNull.Value, DBNull.Value) : x += 5
                    Next
                End If
                isFirst2 = False
    
    この部分で 間(空白) を付けてるのですよね?
    なので、 IF文で、row("マーク") が  "*" か " " かの 条件判定が出来ないものかと思ったのです。
    
    もちろんそれに合わせてデータでの  '*' マークも付けるものとして。
    
    
    Public Class Form1
        Private Structure datF
            Dim Jikoku As String      '時刻 (実際は "2018/01/30 16:30:00" などの日付も入った文字列)
            Dim Suu1 As Integer       '数量1
            Dim Suu2 As Integer       '数量2
            Dim mark As String        'とりあえずは連続した時間の最初のデータのみに '*' マークを付ける。
        End Structure
        Dim Uridat(500) As datF
        Dim datS As Integer
    
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            ' 1分間隔のサンプルデータをを成
            datS = -1
    
            ' 8:10〜8:45           
            For i = 10 To 45        ' 8:10〜8:45
                datS = datS + 1
                Uridat(datS).mark = " "
                'Uridat(datS).Jikoku = "8:" & Str(i)  '時刻
                Uridat(datS).Jikoku = $"8:{i:00}"    '時刻
                Uridat(datS).Suu1 = i * 10           '数量1
                Uridat(datS).Suu2 = i * 5            '数量2 
    
                Uridat(datS).mark = " "
                If i = 10 Then
                    Uridat(datS).mark = "*"          ' とりあえずはデータの最初にのみ "*" マーク を付けてみる。
                End If
            Next
    
            ' 10:20〜11:55
            For i = 0 To 59        ' 10:20〜10:59
                datS = datS + 1
                'Uridat(datS).Jikoku = "10:" & Str(i)   '時刻
                Uridat(datS).Jikoku = $"10:{i:00}"     '時刻
                Uridat(datS).Suu1 = i + 100            '数量1
                Uridat(datS).Suu2 = i + 20             '数量2
                Uridat(datS).mark = " "
    
                If i = 0 Then
                    Uridat(datS).mark = "*"            '  とりあえずはデータの最初にのみ "*" マーク を付けてみる。
                End If
            Next
            For i = 0 To 55        ' 11:00〜11:55
                datS = datS + 1
                'Uridat(datS).Jikoku = "11:" & Str(i)   '時刻
                Uridat(datS).Jikoku = $"11:{i:00}"     '時刻
                Uridat(datS).Suu1 = i + 100            '数量1
                Uridat(datS).Suu2 = i + 20             '数量2
    
                Uridat(datS).mark = " "               '  とりあえずはデータの最初ではないので"*" マークは付けないことにする
            Next
    
            '====   Chart1   ====
            Dim ds As New DataSet
            Dim dt As New DataTable
            Dim dtRow As DataRow
    
            '列の作成
            With dt.Columns
                .Add("時刻", GetType(String))
                .Add("数量1", GetType(Integer))
                .Add("数量2", GetType(Integer))
                .Add("マーク", GetType(String))
            End With
            ds.Tables.Add(dt)
    
            'データのセット
            For i = 0 To datS
                dtRow = ds.Tables(0).NewRow
                dtRow(0) = Uridat(i).Jikoku    '時刻
                dtRow(1) = Uridat(i).Suu1      '数量1
                dtRow(2) = Uridat(i).Suu2      '数量2
                dtRow(3) = Uridat(i).mark      'マーク
    
                ds.Tables(0).Rows.Add(dtRow)
            Next
    
            'Chart に表示するデータソースを設定
            Dim min = -1
            Dim max = -1
            Dim intr = 30
            Dim tbl = GetChartDs(ds, intr, min, max)
            Chart1.DataSource = tbl.Select("", "x")
            Chart1.Series.Clear()
            '
            With Chart1.ChartAreas(0)
                With .AxisX
                    .Minimum = min
                    .Maximum = max
                    .Interval = 5
                    For Each row In tbl.Select("", "時刻")
                        Dim null = row.IsNull("数量1")
                        If null Then Continue For
                        Dim d = row.Field(Of Date)("時刻")
                        Dim x = row.Field(Of Integer)("x")
                        With .CustomLabels.Add(x - 2, x + 2, d.ToString("HH:mm"))
                            .RowIndex = 0
                        End With
                    Next
                End With
            End With
    
            Dim ore = Chart1.Series.Add("折れ線")
            With ore
                .ChartType = DataVisualization.Charting.SeriesChartType.Line
                .EmptyPointStyle.SetDefault(True)
                '.XValueMember = "時刻"
                .XValueMember = "x"
                .YValueMembers = "数量1"
            End With
    
            Dim bou = Chart1.Series.Add("棒グラフ")
            With bou
                .ChartType = DataVisualization.Charting.SeriesChartType.Column
                '.XValueMember = "時刻"
                .XValueMember = "x"
                .YValueMembers = "数量2"
            End With
        End Sub
    
        Private Function GetChartDs(Src As DataSet, IntrMin As Integer,
                                    ByRef Min As Integer, ByRef Max As Integer) As DataTable
            Dim ret As New DataTable()
            Min = Nothing
            Max = Nothing
    
            With ret.Columns()
                .Add("x", GetType(Integer))
                .Add("時刻", GetType(DateTime))
                .Add("数量1", GetType(Integer))
                .Add("数量2", GetType(Integer))
                .Add("マーク", GetType(String))
            End With
    
            Dim x = 1
            Min = x
            x = 5
    
            '一番左にスペース
            'ret.Rows.Add(x, DBNull.Value, DBNull.Value, DBNull.Value) : x += 5   '特に必要はないようにも。
    
            Dim isFirst2 = True
            For Each itm In (From r In Src.Tables(0).Select()
                             Let d = Function(s As String) As Date
                                         Dim d2 As Date = Nothing
                                         If Date.TryParseExact(s, {"HH:mm", "HH: mm", "H:m"}, Nothing, Nothing, d2) Then
                                             Return d2
                                         Else
                                             Return CDate(Nothing)
                                         End If
                                     End Function(r.Field(Of String)("時刻"))
                             Let h = d.Hour
                             Order By d
                             Group By h Into rows = Group)
                '間
                If Not isFirst2 Then
                    For i = 1 To 2
                        ret.Rows.Add(x, DBNull.Value, DBNull.Value, DBNull.Value) : x += 5
                    Next
                End If
                isFirst2 = False
    
                Dim hour = itm.h
                Dim isFirst = True
                For Each rowItm In itm.rows
                    Dim row = rowItm.r
                    Dim d = rowItm.d
                    Dim disp = False
                    If isFirst Then disp = True : isFirst = False
                    If Not disp Then
                        If d.Minute Mod IntrMin = 0 Then
                            disp = True
                        End If
                    End If
    
                    If disp Then
                        ret.Rows.Add(x, d, row("数量1"), row("数量2"))
                        x += 5
                    End If
                Next
            Next
            Max = x
            ret.AcceptChanges()
            Return ret
        End Function
    End Class
記事No.86333 のレス /過去ログ148より / 関連記事表示
削除チェック/

■102047  Re[2]: GmailAPIのテストモードに関して
□投稿者/ kiku -(2023/06/12(Mon) 09:06:53)
    No102041 (くま さん) に返信
    > 2023/06/09(Fri) 21:13:24 編集(投稿者)
    > 2023/06/09(Fri) 20:59:44 編集(投稿者)

    コメントありがとうございます。
    参考になり助かります。

    >>OAuth同意画面の公開ステータスがテストのままの状態で
    >>動いている状態です。
    > エラー 401: deleted_client The OAuth client was deleted.
    > エラー403:access_denied
    > が回避されていて正常にアクセスできる状態という事ですね。
    > https://www.teijitaisya.com/gas-approval-error/

    GASからgmailapiを利用しているわけではなく、
    WinFormアプリからmailkitというライブラリを
    使って、OAuth2.0認証をしつつメール送信に成功しています。
    特にエラーもなく問題なく実行できています。

    >>公開ステータスは、テスト
    > という事はテストユーザを追加して動かしています?
    > https://blog.ver001.com/gmail-api-oauth2-credential-key/

    はい。テストユーザに追加しています。

    > アプリのステータスを「本番環境」に設定すると、Google アカウントを持つすべてのユーザーがアプリを利用できるようになります。
    > https://sugizo.info/2021/04/28/2075/

    あ、なるほど。
    そういうことですか。
    なら逆に利用ユーザを制限したいということであれば
    テストモードの方が良さそうですね。
    とりあえず、1か月後ぐらいにもう一度テストしてみて
    動作するか確認してみます。

    >>この公開ステータスは、テストのまま利用し続けても
    >>良いものなのでしょうか?
    > kikuさんが作られた自動メール送信のGASの利用範囲にあわせて
    > ・テスト
    > ・本番環境
    > に切り替えれば良いみたいです。
    >
    > どちらかというと利用上限の方が問題かと...
    > https://valmore.work/automate-gmail-sending/

    こちらは自身では情報を集めているのですが
    公式のドキュメントが良くわからなくて、
    本番モードの場合のことなのか?
    テストモードの場合も同じ条件なのか?
    はっきりした規約が知りたいなとは思っています。

    例えば、1日は10件以内のメール送信ぐらいであれば
    気にしなくても良いかなという感覚でした。

    しばらく、このスレッドは、締めずに
    情報を待ちたいと思います。
    自身も判明したら書き込むようにします。

    ありがとうございました。
記事No.102037 のレス /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -