「平成」を感じるもの

今、WindowsXP上のVB6プログラムを、Windows7上のVB2010プログラムへ変換作業をしています

手順は
1.VB2008Expressのアップグレードウィザードを使って、一度VB2008版を造りました
  その時に、フォームサイズを変えるステートメントが次のように変わりました

Imports VB = Microsoft.VisualBasic

Me.Width = 16000 → VB6.TwipsToPixelsX(16000)
Me.Height = 12250 → VB6.TwipsToPixelsY(12250)

2.次にWindows7上のVB2010で上記プログラムを読み込むと.
 
    VB6.TwipsToPixelsX(16000) のところに波型のアンダーラインが引かれ
    これは「旧形式です」のメッセージが出ました

 そこで、Microsoftのフォームページ(http://go.microsoft.com/fwlin/?linkid=160862')を参考に
下記のように修正しました

Imports Microsoft.VisualBasic.Compatibility.VB6

Me.Width = Support.TwipsToPixelsX(16000)
Me.Height = Support.TwipsToPixelsY(12250)
  
   と修正しましたが波型アンダーラインは消えませんでした

そこで質問ですが
 この波型アンダーラインは無視して良いのか、
 それともまだ使い方が間違っているのか分かりません
 そこのところご教授願えれば幸いです

  

A 回答 (1件)

VB6.0 では、ScaleMode(座標系の単位)は、twip 単位で、.NET 系は、pixel 単位です。


従って、Me.Width = 16000 の 16000 をtwip → pixel に変換してやればいいだけの事です。
元々Form のサイズの設定部分のコードなので、開発環境でデザイン時に Form のサイズを設定して
貴方が求めるサイズに書き換えてやるべきかと思います。
(元々サイズを直にコードで指定しているのだから)

twip → pixel に単位変換するには、簡易的には、一般的な環境では、16000 / 15 で求める事が
できます。
正確には、環境を考慮して係数を求めて変換する必要があります。


>そこで質問ですが
> この波型アンダーラインは無視して良いのか、
の件ですが、エラーメッセージの通りで、使用できますが、暫定的な方法なので、どうするかは
貴方が決める事かと思います。

VB6.0 のコードを VB2008等へ移行する場合は、アップグレードウィザードで全面的に変換すると、
一般的なコードは問題ないのですが、グラフィックや印刷関係等多くの部分で変換しきれないものが
多くでてきて、中には上記のように中間言語のような扱いで変換される場合があり、お勧めできません
後々の事を考えたら、変換結果等を参考に一から書き直す事が一番かと思います。
(変換結果のプロジェクトは、使用しないで、新規に作成したプロジェクトで作成の事)

VB6.0 のコードを VB.NET 系に移行するには下記等が参考になるかと。

Visual Basic 6.0 ユーザーのための Visual Basic .NET 移行ガイド
http://msdn.microsoft.com/ja-jp/library/dd314356 …
    • good
    • 0
この回答へのお礼

ご丁寧な回答、本当にありがとうございます
ちょっとアップグレードウィザードに頼りすぎてたかも知れません
もう一度初心に戻ってやり直します
それを気づかしてくれた事を本当に感謝します

これからもよろしくお願いします

お礼日時:2011/05/09 11:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A