[delphi-users:1381] Windows7でDelphi5

787 views
Skip to first unread message

kawamura

unread,
Oct 1, 2010, 2:20:44 AM10/1/10
to delphi...@freeml.com
こんにちは。河村ともうします。

長いことWindows2000とDelphi5(Pro)でいろいろ書いてきたのですが、W2kマシン
が手に入らなくなってXPに強制移行を余儀なくされ、前回はWindows7→XPダウン
グレードしてDelphi5(とそれで作ったアプリを)大変快適に使っておりました。

しかし今回マシンを1台更新する必要に迫られ、ダウングレード出荷も10月中に
終わるそうで、Windows7マシンしか手に入らないようです。

自分でWindows7を消してXPに戻す手もあるのですが、ドライバの入手などに一抹
の不安が残ります。
そこで、すでに使われている方にご質問です。
・昔のマシンで作ったDelphi5製アプリは、Windows7でも動くのか。
・Windows7でDelphi5は果たして動くのか。(これは無理かも)
・一番重要な問題として、当方Windows2000マシンを大量に抱えております。
しかも、これらのマシンはもともとNTや9xマシンで、最近W2Kのサポート終了で
あぶれたマシンが回ってきてアップグレードできたので、当面の機種更新はあり
ません。もしWindows7マシンで、Delphiも新バージョンに移行した場合、新しい
アプリはWindows2000でも動くのか。

現在の使い方ですが、一番怪しい(しかも動かないと絶対困る)のがTCommです。
(そもそもWindows7にシリアル通信APIは残っているの?)
数値解析のプログラムもあって、XPモード(Virtual PC改?)では使い物にならな
いような気がします。
データベース系は触っていません。

あと、Vista以降にはProgram filesへの書き込み制限があるそうですが、
ini := TMemInifile.Create(ChangeFileExt(Application.ExeName, '.ini'));
も失敗するのでしょうか?

# Office2007も嫌いで、Kingsoftと大昔のOfficeを使っています。
W2kと互換性がないなら、Andoroidに乗り換えても手間は一緒ですかね。

----
河村 進(かわむら すすむ)
sus...@fa.mbn.or.jp
http://www14.big.or.jp/~kawamura/


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
ちょっとした連絡に♪メンバー掲示板を有効活用しよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fU842
-----------------------------------------------------[freeml by GMO]--

中村@ブレーン

unread,
Oct 1, 2010, 2:48:51 AM10/1/10
to delphi...@freeml.com
中村@ブレーンです。

Windows 7 と Delphi 5 の相性は分からないのですが、
Windows 7 の Pro では XP の仮想マシン(Virtual PC))がライセンスの追加
不要で使えるのでお勧めです。私はこれにさらに VMPlayer(ただ)
を追加して使ってます(Virtual PC の仮想マシンから VMPlayerの仮想マシンを
作ることができます)。

kawamura さんは書きました:

----------
東京都 日野市 中村拓男


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
学園祭で撮った写真をMLにアップしよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fU8Vm

にわ

unread,
Oct 1, 2010, 2:50:09 AM10/1/10
to delphi...@freeml.com

 丹羽です。

解決策ではないですが、
以前、話題になりましたが仮想マシンを使う手もありそうです。
VMwareとか、Virtual PCとかの仮想マシン。
開発環境を再構築するのは面倒なので、
今稼働している環境ごと仮想マシンにして
windows7で動かせば、もうしばらくは使えそうだと考えているのですが?
考えるだけむだでしょうか?
経験のある方、いらっしゃいますか?

>長いことWindows2000とDelphi5(Pro)でいろいろ書いてきたので
>すが、W2kマシン
>が手に入らなくなってXPに強制移行を余儀なくされ、前回は
>Windows7→XPダウン
>グレードしてDelphi5(とそれで作ったアプリを)大変快適に使っ
>ておりました。


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
ゆるくて新しい農場ライフ♪ベジモンたちが待ってるよ!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fU8Wx

Fukushi

unread,
Oct 1, 2010, 2:54:08 AM10/1/10
to delphi...@freeml.com
河村さん、こんにちは。福士と申します。

> ・昔のマシンで作ったDelphi5製アプリは、Windows7でも動くのか。

概ね動作するはずです。うまくいかなければ互換モードの設定を
することでほとんど動作します。ただし従来管理者権限で書き込み
可能だった場所、%ProgramFiles%、%WinDir%、HKLM\Softwareに対する
書き込みはVirtualStoreにリダイレクトされます。

互換モードについては

はじめに - Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd819215.aspx

の"1.2 アプリケーション互換性テクノロジ"を、VirtualStoreへの
リダイレクトについては

ユーザー アカウント制御 (UAC: User Account Control) - Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd883236.aspx

の"Windows 7 での既存アプリケーションへの対応"を参照して
ください。


> ・Windows7でDelphi5は果たして動くのか。(これは無理かも)

これはXPモード上で動作させるのがいいと思います。


> ・一番重要な問題として、当方Windows2000マシンを大量に抱えております。
> しかも、これらのマシンはもともとNTや9xマシンで、最近W2Kのサポート終了で
> あぶれたマシンが回ってきてアップグレードできたので、当面の機種更新はあり
> ません。もしWindows7マシンで、Delphiも新バージョンに移行した場合、新しい
> アプリはWindows2000でも動くのか。

Delphi from Embarcadero | RAD Application Development Software
http://www.embarcadero.com/jp/products/delphi

の"Delphi XEの主な機能"に"単一ソースからWindows 2000、XP、
Vista、Windows 7の複数バージョンに対応可能"と公式に書かれて
いるとおり、Delphi XEで作成したプログラムは原則としてWindows
2000で動作します。


> 現在の使い方ですが、一番怪しい(しかも動かないと絶対困る)のがTCommです。
> (そもそもWindows7にシリアル通信APIは残っているの?)

さすがにそんな変更はいくらMicrosoftでもしないでしょう…
(油断はできませんが)。

> 数値解析のプログラムもあって、XPモード(Virtual PC改?)では使い物にならな
> いような気がします。

使い物にならない理由がないと思います。USBやDirectXが絡むと
うまくないようですが、XPモードはそれなりに互換性が高いですし、
いざとなればVMware Playerという手もあります。


> あと、Vista以降にはProgram filesへの書き込み制限があるそうですが、
> ini := TMemInifile.Create(ChangeFileExt(Application.ExeName, '.ini'));
> も失敗するのでしょうか?

Delphi 5でプログラムを作成しているということはマニフェストが
存在しないでしょうから、上記のVirtualStoreへのリダイレクトが
行われます(エラーにはなりません)。


Windows 2000/XPからWindows Vista/7にステップアップするときに
問題になりそうなポイントは

Windows VistaR および Windows ServerR 2008 アプリケーション互換性解説書
http://msdn.microsoft.com/ja-jp/library/aa480152.aspx

アプリケーション開発者向け MicrosoftR Windows 7 対応アプリケーションの互換性
http://msdn.microsoft.com/ja-jp/windows/dd819215.aspx

を一通り押さえておくとよいと思います(一通りといいながら相当な
ボリュームがありますが、かつてのMicrosoftからは想像もつかない
ような親切さだとは思います)。

---
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fuk...@tts-inc.co.jp


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
みんなの気になってたアレ、調査しました!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fU8ZC

umez

unread,
Oct 1, 2010, 3:35:26 AM10/1/10
to delphi...@freeml.com
こんにちは、梅澤@プロキャストです。

kawamura さんは書きました。<2010/10/01>

>・一番重要な問題として、当方Windows2000マシンを大量に抱えております。
>しかも、これらのマシンはもともとNTや9xマシンで、最近W2Kのサポート終了で
>あぶれたマシンが回ってきてアップグレードできたので、当面の機種更新はあり
>ません。もしWindows7マシンで、Delphiも新バージョンに移行した場合、新しい
>アプリはWindows2000でも動くのか。

これは、DelphiXE を「特別アップグレードキャンペーン」で購入し、"おまけ"
でダウンロードできる、Delphi2007 か Delphi7(Win9x系でも動かしたい場合)
を利用するという手もあるかと...

>
>現在の使い方ですが、一番怪しい(しかも動かないと絶対困る)のがTCommです。
>(そもそもWindows7にシリアル通信APIは残っているの?)

TComm という名前のコンポーネント、複数存在していたような気が...
「Delphi達人テクニック」の本とかで紹介されていたものでしょうか?

シリアルポート関連でざっと思い浮かぶのは、以下のようなところでしょうか。
1) TComm
2) CommX (Nifty の FDelphiなどで配布されていた)
3) TurboPower Async Professional
(旧: TurboPower社が パッケージの開発を止めてオープンソース化
したもの)
http://sourceforge.net/projects/tpapro/
4) TMS Async32
(旧 Varian Async32。TMS社が買った)
http://www.tmssoftware.com/site/async32.asp


1), 2) は、個人で作成されたものと思われ、最近は聞きません。
ただし、どちらのソースもざっと見た事はありますが、それほど複雑な事は
していなかったはずです。
問題があれば、自分で手をいれて修正することも可能かもしれません。
(ただ、TCommは、受信イベントのスレッドの扱いで何か問題があったような
話を聞いた気もしますが...)
また、TComm, CommX に関してはインターネット検索等で、OSに対応させるため
の修正点などの情報が得られるかもしれません。(当時多くの方が使っていたと
思いますので)

3) はいろいろな機能を盛り込んでいる関係で、ソースも大変複雑だったはず
です。TurboPowerが止めてから大分立ちますが、有志の方々が、いろいろと
改善なさっているようです。

4) は、50EUR しますが、すでに DelphiXE へ対応済みです。
TMSは、このコンポの機能アップはそれほどしてきませんでしたが、Delphiが
新しくなる度に、ちゃんと対応させています。(まあ、コンポの性質上、
それほど作業負荷はないのだと思いますが...)

そのほかにも、TORRY'S DELPHI をみると、いろいろあるようです。
http://www.torry.net/pages.php?id=198

>数値解析のプログラムもあって、XPモード(Virtual PC改?)では使い物にならな
>いような気がします。
>データベース系は触っていません。
>
>あと、Vista以降にはProgram filesへの書き込み制限があるそうですが、
>ini := TMemInifile.Create(ChangeFileExt(Application.ExeName, '.ini'));
>も失敗するのでしょうか?
>
># Office2007も嫌いで、Kingsoftと大昔のOfficeを使っています。
>W2kと互換性がないなら、Andoroidに乗り換えても手間は一緒ですかね。
>
>----
>河村 進(かわむら すすむ)
> sus...@fa.mbn.or.jp
>http://www14.big.or.jp/~kawamura/
>
>
>MLホームページ: http://www.freeml.com/delphi-users
>
>----------------------------------------------------------------------
>ちょっとした連絡に♪メンバー掲示板を有効活用しよう!
>http://ad.freeml.com/cgi-bin/sa.cgi?id=fU842
>-----------------------------------------------------[freeml by GMO]--

----------
Tomomi Umezawa um...@procast.co.jp


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
新メンバーを便利な@招待機能で一気に登録しよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fU9IL

snail3

unread,
Oct 1, 2010, 3:44:55 AM10/1/10
to delphi...@freeml.com
> 現在の使い方ですが、一番怪しい(しかも動かないと絶対困る)のがTCommです。
> (そもそもWindows7にシリアル通信APIは残っているの?)
シリアル通信APIは残っています。
先日 Delphi5 -> 2010 のコンバートを行いました。Delphi5 のコードは
少しの手直しで動作しました。

最近のPCにはシリアルポートが無いので USB<->シリアル変換装置か
USB<->イーサネット変換を利用することになると思います。

最終的な互換性はご自身で確認するしかありませんが、
特別なドライバーやDBを利用していないなら
XPモードだけでも大抵は問題無いように思います。

setup や install といった名称のプログラムは問題があります。

--
takashi <taka...@csjpn.com>


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
練習の予定も共有スケジュールに登録しよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fU9Uz

kawamura

unread,
Oct 2, 2010, 1:48:03 AM10/2/10
to delphi...@freeml.com
こんにちは。河村ともうします。
多くのご返答いただき、ありがとうございました。
既存アプリが動かないという噂を聞いたので、もうWindowsを捨てるか...と覚悟
していたのですが、意外に互換性が確保されているようなので、今後のことを考
えて一応DelphiXEを購入した上で、とりあえずはWindows7上でDelphi5を試して
みようと思います。

マルチレスになりますが

2010/10/01 15:54にFukushi さんが書かれた件...


>> あと、Vista以降にはProgram filesへの書き込み制限があるそうですが、
>> ini := TMemInifile.Create(ChangeFileExt(Application.ExeName, '.ini'));
>> も失敗するのでしょうか?
>
> Delphi 5でプログラムを作成しているということはマニフェストが
>存在しないでしょうから、上記のVirtualStoreへのリダイレクトが
>行われます(エラーにはなりません)。

追加でお聞きしようと思ったのは、iniファイルを読み書きする場合
procedure SaveSettings;
var ini : TMemInifile;
begin
ini := TMemInifile.Create(ChangeFileExt(Application.ExeName, '.
ini'));
...(中略)...
ini.UpdateFile; // VirtualStoreにリダイレクトということですね

しかし逆に読み込みではどうなのでしょうか?
procedure LoadSettings;
var ini : TMemInifile;
begin
ini := TMemInifile.Create(ChangeFileExt(Application.ExeName, '.
ini'));
// 今度はリダイレクト先を読まないような気が?
Edit1.Text := ini.ReadString('hoge', 'hoge', '?');

FileExistsとか、SHFileOperationの結果など、他にもいろいろ気になったので
すが、ググって見るとVirtualStoreの無効化のレジストリをいじれば、XP以前と
同じように動作するようになるのですね。
(パッケージ製品ならあり得ない対応ですが、私DIYプログラマですので...w)

あと、みなさまからXPモードをおすすめされたのですが、
> 数値解析のプログラムもあって、XPモード(Virtual PC改?)では使い物にならな
> いような気がします。
と書きましたのは、パフォーマンスが相当落ちるらしい(以前Virtual PCを試し
たことがありますが、遅すぎてDual Bootに変更した覚えがあります)ので、マシ
ンが新しくなって前より計算が遅くなるなら使いたくない、という意味です。
XPの移行時にいろいろなサービスを無効にして対応したように、Windows7でも設
定をいじればXPモードを使わなくてもDelphi5が動きそうな気がしてきました。

それから、
2010/10/01 16:35にumez さんが書かれた件...


>TComm という名前のコンポーネント、複数存在していたような気が...
>「Delphi達人テクニック」の本とかで紹介されていたものでしょうか?
>
>シリアルポート関連でざっと思い浮かぶのは、以下のようなところでしょうか。
> 1) TComm
> 2) CommX (Nifty の FDelphiなどで配布されていた)
> 3) TurboPower Async Professional
> (旧: TurboPower社が パッケージの開発を止めてオープンソース化
> したもの)
> http://sourceforge.net/projects/tpapro/
> 4) TMS Async32
> (旧 Varian Async32。TMS社が買った)
> http://www.tmssoftware.com/site/async32.asp

1)です。今のところいろいろ手を加えて対応していますが、この際3)にしてもい
いかと思っています。PCの世界ではRS-232Cは完全にレガシーデバイスですが、
計測系では当分なくなりそうもないですね。

----
河村 進(かわむら すすむ)
sus...@fa.mbn.or.jp
http://www14.big.or.jp/~kawamura/


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
学園祭で撮った写真をMLにアップしよう!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fUPHR

snail3

unread,
Oct 2, 2010, 5:02:15 AM10/2/10
to delphi...@freeml.com
> 追加でお聞きしようと思ったのは、iniファイルを読み書きする場合
アプリ側では気にしなくてOKです。
OSが勝手に別のフォルダで読み書きします。
(C:\USER\ユーザー\...)


XPモードとWindowsXP互換モードを勘違いしていらっしゃるようですが別物です。
XPモードは(Virtual PC改?)、

以下を参考にして下さい。
http://itpro.nikkeibp.co.jp/article/COLUMN/20100914/352030/
>  互換モードの考え方は「いかにアプリケーションを騙すか」という点にある。つまり、特定のアプリケーションに対して、あたかも古いOSであるかのごとくOSが振る舞うというものだ。ただし、この「互換モード」を利用するためには、対象となるアプリケーションを起動する前に、そのアプリケーションに対してどのバージョンのWindowsとして振る舞うかをユーザー自身であらかじめ設定しておかなければならない。

On Sat, 2 Oct 2010 14:48:00 +0900 (JST)
kawamura <delphi...@freeml.com> wrote:


--
takashi <taka...@csjpn.com>


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
ゆるくて新しい農場ライフ♪ベジモンたちが待ってるよ!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fUSmk

ishida

unread,
Oct 17, 2010, 9:58:15 AM10/17/10
to delphi...@freeml.com
 Windows7 Ultimate 64bitでDelphi5.0は動きました。
生成したEXEも実行できました。ただし、すべての機能を
試したわけではありません。XP環境で生成したexeの動作では
QuickReport LightReport2 など含んだものですが
正常に動作してます。


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
「あなたはマック?それともマクド?」気になるコトを調査しました!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fZd6N

中村@ブレーン

unread,
Oct 18, 2010, 1:53:30 AM10/18/10
to delphi...@freeml.com
中村です。

細かい話ですが、Windows XP 以降では Delphi 2005 より前の
Delphi で作成したアプリケーションはモーダルダイアログが
アプリケーションの他のウィンドウの後ろに隠れてしまうことが
まれにあります。
#つまり Delphi 7 でさえ、XPのサポートが不完全です。
#時期的にはまあ、仕方が無いのですが...

このために Delphi 2005 で PopupParent プロパティとかが
追加されたのですが、このあたり気にするようでしたら、
Delphi 2005 以降をお勧めします。

ishida さんは書きました:

----------
東京都 日野市 中村拓男


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
一部のメンバーだけにMLメールを送ることができるようになりました!
http://ad.freeml.com/cgi-bin/sa.cgi?id=fZmrN

Reply all
Reply to author
Forward
0 new messages