ScaleMode がサポートされていない

Visual Basic 6.0 では、ScaleMode プロパティを使用して、フォームや PictureBox コントロールの座標系を既定スケールである twip から変更できました。

Visual Basic 2008 では複数の座標系はサポートされず、ピクセルだけがサポートされています。アップグレードの時、座標系は自動的に twip からピクセルに変換されます。コードで ScaleMode プロパティを実行時に設定している場合は、コンパイル エラーが発生するため、コードを変更する必要があります。

fhk6kcce.alert_note(ja-jp,VS.90).gifメモ :

アップグレード ツールは、ScaleMode プロパティのデザイン時設定が twip であることを仮定しています。それ以外の場合は、正しく変換されないため、修正が必要です。

次の操作

  1. ScaleMode プロパティを設定しているコード行を削除します。

  2. ScaleMode プロパティに基づいたコードを見直し、必要に応じて計算を変更します。インチ単位の ScaleMode を使用していたプロシージャを変更する方法の例を次のコードに示します。

    ' Visual Basic 6.0
    Form1.ScaleMode = vbInches
    Text1.Move 2, 1
    

    上のプロシージャは、テキスト ボックスをフォームの左上隅から右に 2 インチ、下に 1 インチ移動します。

    ' After upgrade to Visual Basic 2008
    'UPGRADE ISSUE: Constant vbInches was not upgraded.
    'UPGRADE ISSUE: Form property Form1.ScaleMode is not supported.
    ' The next line must be removed in order to compile.
    Form1.ScaleMode = vbInches
    ' Twips are converted to pixels, but the original inch values are used.
    Text1.SetBounds(VB6.TwipsToPixelsX(2), VB6.TwipsToPixelsX(1),...
    

    アップグレードすると、このプロシージャは、テキスト ボックスを右に 2 ピクセル、下に 1 ピクセル移動します。これは目的の動作と異なります。

    ' Modified Visual Basic 2008 code
    ' Removed the ScaleMode line.
    ' Convert the scale (1 inch = 1440 twips).
    Text1.SetBounds(VB6.TwipsToPixelsX(2880), VB6.TwipsToPixelsX(1440),...
    

    インチに 1440 を掛けて twip をピクセルに変換することにより、元の Visual Basic 6.0 コードと同じ結果が得られます。

参照

概念

Form オブジェクト (Visual Basic 6.0 ユーザー向け)