ScaleMode がサポートされていない
Visual Basic 6.0 では、ScaleMode プロパティを使用して、フォームや PictureBox コントロールの座標系を既定スケールである twip から変更できました。
Visual Basic 2008 では複数の座標系はサポートされず、ピクセルだけがサポートされています。アップグレードの時、座標系は自動的に twip からピクセルに変換されます。コードで ScaleMode プロパティを実行時に設定している場合は、コンパイル エラーが発生するため、コードを変更する必要があります。
メモ : |
---|
アップグレード ツールは、ScaleMode プロパティのデザイン時設定が twip であることを仮定しています。それ以外の場合は、正しく変換されないため、修正が必要です。 |
次の操作
ScaleMode プロパティを設定しているコード行を削除します。
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 コードと同じ結果が得られます。