1.Delphi2007のソースをDelphi2010へ移行するつもりですが、
変数宣言の PChar -> PAnsiChar
変数宣言の String -> AnsiString
型キャスト PChar -> PAnsiChar
型キャスト String -> AnsiString
以外になにか注意点ありますでしょうか?
2.全てのStringをAnsiStringに移行する必要は本当にありますか?
VCL関数の多くの引数の型はStringだし....
御存知な方、ぜひご教授ください。
>全てのStringをAnsiStringに移行する必要は本当にありますか?
ちなみに、Unicode対応には、しないのですか?
# しないのであれば、Delphi2007のままでもよいような気がしますが・・
Delphi2007からDelphi2010への移行には、1のようにすべて変えなくても大丈夫です。ここはAnsiで処理しなければいない箇所だけ1のようにかきなおします。
1以外に文字列処理が影響します。特にCopyなどバイト単位で扱うので、日本語文字の処理は文字数の扱いにします。
SizeOf(Char) は 1として扱うというのがあります。
厄介なのはフリーのコンポーネントがUnicodeに対応しているかどうかです。
わたしは仕事、趣味で何本か移行しましたが、ほとんど機械的に移行が可能です。自分が理解しないで、ネットなどからコピーした場合は、移行できずにいるプロジェクトもあります。
最初にコンパイルが通るか、通らなければ上記を確認
コンパイルできたアプリの動作確認、結果が悪ければその部分を見直す。
かなり大きなプログラムも含めて、20本ほど2007⇒2010の移行をしました。
経験ですが、標準のコンポーネントだけを使っているぶんには、大半はDelphiに任せて「機械的に移行」できます(てきているように見えます。)。しかし、たとえずDbGridのタイトルをクリックしたエベントが、2010では無視されるというようなことがあります。そのようなときには、コントロールを改めて2010のツールパレットから張り替えるとうまくいくということが何度かありました。
ためしてみてください。
大変参考になりました。
ちょっと試してみます、うまく動かない場合は、再度コンポを貼り直して
みます。
ありがとうございました。
ツイート | ![]() |