Knowlbo(R)/OCX タイム ビュー Version 1

アップデート情報

最新バージョン V1.7J R.04 最終更新日 2001年 7月10日  株式会社 ナルボ

改版内容 | 注意制限事項


改版内容

先頭↑


KnTView (タイム ビュー)

【追加機能】

 [V1.1 R.00]

  • Borland Delphi 5に対応しました。
  • ProgressオブジェクトのPercentFrom、及びPercentToプロパティに日時を指定できるようにしました。日時を指定すると、達成率のバーは指定した日時から(まで)描画されます。
  • TimeScaleオブジェクトにDateSwitchHourプロパティを追加しました。
  • 日付/時刻表示書式指定文字にHXを追加しました。TimeScaleオブジェクトのDateSwitchHourプロパティに5を指定して、HX書式を使用すると、0時から4時までの時間の表示が24、25、 26、27、28となります。
  • TimeScaleオブジェクトにSetRangeメソッドを追加しました。タイムスケールのスクロール範囲を指定することができます。
  • DisableNoVerScrollプロパティ及びDisableNoHorScrollプロパティを追加しました。これらのプロパティを使用すると、スクロールが不要な状態のときにスクロールバーを非表示にすることができます。
  • DragTip オブジェクトを追加しました。DragTip オブジェクトを使用することにより、ドラッグ操作中に表示されるドラッグ ヒント ウィンドウの非表示やフォントの変更などを設定することができます。

 [V1.2 R.00]

  • Miscプロパティを追加しました。HitTest メソッドの動作において、次の2つの調節ができるようになりました。
    • 同一アイテム内の、時間の重なりあうピースどうしのヒットテストを、ピースバーの形状毎により精密に行うようにすることができます。
    • 同一アイテム内にあるピースをヒットテストする場合に、Piece.Indexプロパティの値が大きいほうからテストするようにできます。(従来は、Piece.Indexプロパティの値の小さいほうから行っていました)

 [V1.3 R.00]

  • Miscプロパティに設定可能な値として、新たに tivMiscHitTestTime を追加しました。このフラグを設定した場合、HitTestメソッドでピース、およびピース始点/終点へのヒットを検出した場合にも、マウスポインタの位置に対応する日時を HitTestResultオブジェクトのTime プロパティに返します。

 [V1.4 R.00]

  • PieceCaptionAdjustInViewプロパティを追加しました。このプロパティをTrueにすると、ピースバー全体が完全に画面から見えなくならない間、ピースバーの中に配置したキャプションの表示を適宜移動させ、見えるようにします。
  • Borland C++Builder5に対応しました。

 [V1.6 R.01]

  • Miscプロパティに設定可能な値として、新たに tivMiscSpecialTimeNewModeを追加しました。このフラグを設定した場合、必ずすべての特別時間帯設定を描画するようになり、特別時間帯コレクション(SpecialTimes)に含まれる特別時間どうしでパターンが異なっている場合にもすべて描画します。更に、V1.5 R.00から追加されたSpecialTime.ZOrderプロパティを利用できるようになるほか、SpecialTime.Patternプロパティに3(tivSpceialTimeDirect)が指定できるようになります。
  • 特別時間帯(SpecialTime)オブジェクトにZOrderプロパティを追加しました。これまではIndex順に描画されましたが、明示的にZOrderを指定することにより希望の順番で描画させることができます。
  • 特別時間帯(SpecialTime)オブジェクトのPatternプロパティに設定可能な値として、3(tivSpceialTimeDirect)を追加しました。これを使うと、StartとFinishに指定した日時範囲を特別時間帯として指定できます。日付も解釈するのが、ほかのパターンと異なる特徴です。
  • 印刷情報(PrintInfo)オブジェクトにPaperSizeプロパティを追加しました。これにより、用紙を特定してから印刷、および印刷プレビューを利用できます。
  • EndPrintイベントを追加しました。これを利用しますと、印刷メソッド(PrintStart、PrintPreview、PrintDirect)の呼び出しの結果、実際に印刷が行われたか、または途中でキャンセルしたかを判別できます。
  • PrintInfoオブジェクトにTitleプロパティを追加しました。Titleプロパティに印刷対象の名前などを設定しますと、印刷プレビューウィンドウや印刷中ダイアログにその名前を表示します。
  • CreatePrintInfoメソッドを追加しました。このメソッドは、とくにDelphiやC++ Builderで、PrintInfoオブジェクトを生成するコーディングがうまくできないときに有効です。
  • タイムビューコントロールの各フォントオブジェクトに対して、SetFontPropertyメソッド、GetFontPropertyメソッドを追加しました。DelphiやC++ Builderなどのコンテナで、タイムビューのFontオブジェクトに簡単にアクセスできます。
  • PieceCaptionMaxWidthプロパティを追加しました。このプロパティは、ピースバーの外側に配置するキャプション文字列の折り返し幅を表します。
  • 体験版動作が組み込まれました。ライセンス情報を認識できない状態でタイムビューを表示すると、必ずアバウトボックスを表示しますが、続行して使用できます。

 [V1.6 R.02]

  • Refresh メソッドを追加しました。このメソッドは、強制的にタイムビュー全体の再描画を行います。

【改善機能】

 [V1.1 R.00]

  • TimeScaleオブジェクトのWindowFitプロパティが1 (tivWindowFitLargeScale)のとき、複数ページの印刷が行われない問題を改善しました。
  • 末尾アイテムより下に何も表示されない余白がある場合において、その余白領域の再描画が不完全になる問題を改善しました。
  • Window95,98 において、ピースが設定した時間以外の場所に再び表示されてしまう問題を改善しました。
  • OLE ドラッグ アンド ドロップ関連のイベントの引数に渡されるSelectecPiecesコレクション内のPieceCaption、及びProgressオブジェクトのプロパティの一部が転送されない問題を解決しました。

 [V1.2 R.00]

  • 横スクロールにおいて、TimeScale.SetRangeメソッドの指定内容によって、ピースのみがスクロールしてしまう障害を修正しました。
  • TimeScale.SetRangeメソッドに指定した日時がタイムスケールの中区分の目盛りに一致しない値のとき、右端までスクロールしたときに描画が不正に重なるのを修正しました。(※但しこの修正の結果、右端の目盛りが1目盛り多くなる場合があります)
  • PieceCaption.Position プロパティ設定時の内部処理を改善しました。PieceCaption.Position プロパティに左、中、右のいずれかしか指定しない場合、設定速度が向上します。
  • 1アイテムに多くのピースを設定(約 100以上)したときに、描画速度が遅くなるのを改善しました。

 [V1.2 R.01]

  • TimeScaleオブジェクトのWidthPerScaleプロパティにおいて、取得時に間違った値が返るのを修正しました。

 [V1.4 R.00]

  • PrintInfoオブジェクトのレジストリ登録項目に、Safe for Scripting、および Safe for Intializeを示すキー値を追加しました。Internet Explorerから実行するHTMLコードでPrintInfoオブジェクトを生成したときに、必要以上にセキュリティ警告メッセージが表示されるのを解消しました。
  • TimeScale.DateSwitchHourプロパティに指定できる値が、不正に1から7に制限されていたのを、0から23に修正しました。
  • 特別時間帯に関するプロパティ値の変更時に、再描画が行われない障害を修正しました。
  • 開始日時のみを指定しているピースのドラッグ操作中に表示されるTip表示で、不要な終了日時の表示を止めました。
  • ColumnHeader.MergeModeプロパティの値が 1 (左列の制約を受けて結合) の列が連続で複数列ある場合における、セルカーソルの描画と移動が不正であったのを修正しました。

 [V1.4 R.01]

  • ProgressオブジェクトのPercentFrom、およびPercentToプロパティへの代入で、値がゼロになってしまうことがあるのを修正しました。

 [V1.4 R.02]

  • PrintStart, PrintPreview, PrintDirect メソッドを使った印刷において、印刷対象アイテム数が1つの場合に、印刷せずに実行時エラーが発生する障害を修正しました。

 [V1.4 R.03]

  • 塗りつぶしの設定(Fill.Pattern)にグラデーションに指定がある部分の描画を印刷で行うと、その後のほかの部分の印刷が一部行われなくなる不具合を修正しました。

 [V1.6 R.01]

  • 日付/時刻表示書式のyyyy、およびyyが出力する内容が和暦になってしまう場合があるのを修正しました。
  • 日付/時刻表示書式のaaa、およびaaaaが出力する内容が英語になってしまう場合があるのを修正しました。
  • フォーカスの取得、および消失時の描画を最小限に抑えました。これにより、タイムビューから他のウィンドウにフォーカスを移動したタイミングで行う再描画に起因するもたつきを改善しました。
  • 現在日時線の位置が更新されるタイミングでの最描画を最小限にしてちらつきを抑えました。
  • マウスのホイールによるスクロール操作時に、不正なスクロールが実行されてしまう障害を修正しました。
  • タイムビューがMDI子フォームに貼り付いた状態でタイムビューの列見出しやタイムスケールをマウスでクリックしても、MDI子フォームがアクティブ状態にならない障害を修正しました。
  • MDI子フォームに貼り付いたタイムビューがフォーカスを取得している状態で、CTRL+TABを押しても次のMDI子フォームにアクティブ状態が移動しない障害を修正しました。
  • マウス操作による列幅変更、および目盛り幅操作時においてもその直前と直後にMouseDown, MouseUpイベントが発生するように修正しました。
  • TimeScale.WindowFitプロパティに、tivWindowFitLargeScaleを設定した際の目盛り表示において、右端に余分な目盛りを描画する障害を修正しました。
  • マウス操作でアイテム高をゼロ、またはマイナス方向にドラッグして決定した際に一般保護違反が発生する障害について、マウス操作ではアイテム高を1ピクセル未満に変更できないようにしました。
  • ItemHeightプロパティに0を設定すると一般保護違反が発生する障害について、一般保護違反を発生しないように修正しました。
  • PieceCaptionオブジェクトのTypeプロパティにtivPieceCaptionKey (Piece オブジェクトの Key プロパティの値を表示)を設定した場合に、PieceオブジェクトのKeyプロパティの値を変更してもすぐに再表示されない不具合を修正しました。
  • 複数ページの印刷において、印刷中ダイアログの取消ボタンを押しても最後まで印刷されてしまう障害を修正しました。
  • PieceCenterHeightプロパティに0、またはマイナス値を設定した場合に、プログラムが応答しなくなったり、一般保護違反になる障害への対応として、1以上の値のみ受け付けるように変更しました。

[V1.6 R.03]

  • アイテムの削除によってViewTopItemが変化する場合の再描画不足を修正しました。

[V1.6 R.04]

  • AfterCellEditイベントにブレイクポイントを設定すると、イベント復帰直後に一般保護違反が発生するのを修正しました。

[V1.6 R.05]

  • タイムスケールの右端に中区分の目盛りが完全一致する場合、SetRangeメソッドにて指定した範囲より1目盛り多くスクロールしてしまう障害、および右端目盛りの描画が不足する障害を修正しました。
  • TimeScale.Originプロパティの示す日時よりも過去を、SetRangeメソッドに指定した場合、不正に1目盛り未来方向にずれて調整される障害を修正しました。
  • タイムビュー下部分にアイテムが表示されていない領域がある場合、この領域の再描画時に異常終了する障害を修正しました。

[V1.7 R.00]

  • 印刷時、アイテム方向において改ページが行われる場合、最終ページにアイテムが1つしか印刷されない状況では、最後のアイテムが印刷されない障害を修正しました。

[V1.7 R.01]

  • ピースバーの描画において、Piece.Start~Finishの期間が長い場合、その描画サイズがシステムで処理可能な範囲をオーバーフローして画面上から消える障害を修正しました。

[V1.7 R.04]

  • セルを結合していると再描画時にメモリリークが発生する不具合を修正しました。
  • コレクションオブジェクトのKeyプロパティに空文字列を設定していくとKeyの重複によりエラーが発生していましたが、空文字列はKeyの重複チェックの対象外としました。



注意制限事項

先頭↑
 
  • HeaderPrint、FooterPrintイベント内のブレークポイント、あるいはスクリプトエラーでのブレークで、一般保護違反が発生します。


  • OLEDragメソッドは、現在動作しません。

  • Delphi、およびC++ Builderにおける注意制限事項
  • OLEドラッグ アンド ドロップに関するプロパティ、及びメソッド、イベントは使用できません。
  • KnTView.Fontプロパティに関する制限事項
    • 設定情報が保存されません。対処方法として、コーディングで実行時に設定を行ってください。
    • Object Inspectorウィンドウから編集することができません。

  • タイムビューパッケージ作成時のコンパイルエラー
    サンプルのタイムビューパッケージを含め、タイムビューパッケージのコンパイル時には次のコンパイルエラーが発生します。

    --------------------------------------------------------
    [C++ エラー] utilcls.h(2334): E2031 Cannot cast from 'const
    TBaseVariantT<tagVARIANT>' to 'TVariant &'
    --------------------------------------------------------
    エラー発生個所は、utilcls.h ファイルの下記のところです。
    --------------------------------------------------------
    /* Assignment operators */
    TVariantT& operator =(const TBaseVariantT<T>& rhs)
    {
    if (&rhs != this)
    {
    ::VariantClear(this);
    ::VariantCopy(this, &(const_cast<TVariantT&>(rhs)));
    }
    return *this;
    }
    --------------------------------------------------------


    これは、C++Builder5の障害であるため、 お手数ですが、下記の通り修正し、問題を回避してください。

    --------------------------------------------------------
    /* Assignment operators */
    TVariantT& operator =(const TBaseVariantT<T>& rhs)
    {
    if (&rhs != this)
    {
    ::VariantClear(this);
    ::VariantCopy(this, &(const_cast<TBaseVariantT<T>&>(rhs)));
    }
    return *this;
    }
    --------------------------------------------------------
  • 次のイベントプロシジャは、C++Builder5では、利用できません。

C++Builder5のイベントプロシジャの呼出し処理においてクラッシュします。

AfterCellEdit   AfterPieceAdd   AfterPieceMove
AfterPieceTimeChange   BeforeCellEdit   BeforePieceAdd
BeforePieceMove   BeforePieceTimeChange   Compare
DragTipFormat        
  • V1.0からV1.1へアップデートする場合、次の制限事項があります。 KnTViewとPrintInfo以外のオブジェクトについては、NewやCreateなどのメソッドを使って、オブジェクトのインスタンスを生成することができなくなります。
例:    
Dim pce As New Piece   '× V1.1ではエラー
Dim pce As Piece   '○ V1.1以降も正常なコード
Dim pi As New PrintInfo   '○ V1.1以降もPrintInfoは生成可能