皆様、お世話になっております。
DELPHIで作ったOCXをVBで使用すると、VBのプロジェクトファイル保存時に「予期せぬエラー」と出てしまいます。どうやら、パラメータにPictureを使っているところがあり、SetOlePictureを使用しているところで出ているようなのですが良い回避方法をご存知ありませんでしょうか?
また、OCXのなかでIniファイルを読み込んでいるのですがVBで使用時では何故か読み込めません。DELPHIでそのOCXを使うときは読み込めているのですが、
ちなみにTIniFile.Createから、ReadStringを使っているのですが、これらはOCXをVBで使うときは使用できないのでしょうか?ご存知の方よろしくお願いします。
自己レスです。
申し訳ありません。「予期せぬエラー」はPictureを使うプロパティのGet_XXXXで出ていました。今回のOCXには不要なので削除し解決しました。
しかし、INIファイルの件がまだ分かりませんどなたかよろしくお願いします。
OCXは作ったことないのでわかりませんけど、
TMemIniFileを使ってはどうでしょう?
(とりあえずTIniFileとはまったく別のことになりますし)
読み込めないとはどのような状態でしょうか。
エラー(例外など)が発生する、読み込んでも""になる、ReadStringすると落ちる etc...いろいろ考えられますが。
もちろん、渡しているパスはフルパスですよね?TApplication.ExeNameなどを元にできるかどうかは未確認ですが、VBからフルパスを渡せば確実です。
質問しておいて説明不足でした申し訳ありません。
渡しているパスはフルパスです。「読み込めない」とは読み込んでいるはずの情報が「""(空文字)」になってしまう状態ということです。
TIniFile.Create後にTIniFile.FileNameで確認するとパスも渡せているようです。
また、TMemIniFileも試してみましたが同じ結果でした。
どうぞ、よろしくお願いします。
VBのStringとDelphiのStringの違いかもしれません。
OCX側で、渡す際にPCharにしてみてください。それでも駄目でしょうか。
# その後、VB側でStrConvしないとだめかも
ちょっと言葉を間違えました。
OCX側から値を返す際、PCharにしてみてください。
ツイート | ![]() |