いつも拝見させて頂いています。
環境
VB6(SP6)
OS:XP HOME Edition SP2
現在、上記環境で開発しています。
自PCでFormにPictureBoxを貼り付けたプログラムを作成しました。
作成したプログラム他PCで開いたところ、
FormのPictureBoxのLeftプロパティの値が変わっていました。
自PCで開いたPictureBoxのLeftプロパティ:168
他PCで開いたPictureBoxのLeftプロパティ:210
因みにFormのScaleModeプロパティは、ピクセルにしています。
上記のような現象を解決する方法はありますか?
よろしくお願い致します。
連投ですみません。
他PCも、開発PCと同様の環境です。
そもそもずれてしまう原因は、
解像度が違う、Runtimeのバージョンが違う等
チェックする項目はいくつかありますが、
値を同じにするのが目的であれば
Leftプロパティは、値の取得だけでなく設定も可能なので
FormのLoadイベントの前(Sub Main)で設定するとか?
さささん、返事ありがとうございます。
解像度は同様にして確認しました。
Runtimeも同様のバージョンです。
>値を同じにするのが目的であれば
>Leftプロパティは、値の取得だけでなく設定も可能なので
>FormのLoadイベントの前(Sub Main)で設定するとか?
自PCで開いた時のLeftプロパティが、168です。
他PCで開いた時のLeftプロパティが、210で設定されています。
この時点でLeftプロパティが異なるので、表示位置がずれるはずですが、
自PC、他PC共に表示位置は同じです。(デザイン時)
他PCで開いたプログラムをロード時に(Sub Main)
Leftプロパティに値を設定すると(例えば168を設定)
他PCでロードしたプログラムは、自PCでロードしたプログラムに比べ、
左にずれてしまいます。
※初回質問時に、説明不足ですいません。
Left プロパティの値が違っても表示位置が同じって事は、単に同じ Twips 値を Pixel 変換した後の値が異なっているだけの気がする。
それぞれの PC で Screen.TwipsPerPixelX プロパティ/Screen.TwipsPerPixelY プロパティの値が同じかどうか調べてみては。
Geo=TK3さん、お返事ありがとうございます。
>それぞれの PC で Screen.TwipsPerPixelX プロパティ/Screen.TwipsPerPixelY プロパティの値が同じかどうか調べてみては。
上記の設定を調べました。
自PCのScreen.TwipsPerPixelX プロパティ:15
他PCのScreen.TwipsPerPixelX プロパティ:12
でした。
この誤差は何なのか調べたところ、
DPIの設定によるものでした。
自PC:96
他PC:120
以上を 96 に合わせたところ正しく表示されました。
ありがとうございました。
ツイート | ![]() |