DELPHIで作ったOCXをVBで、


TUU  2003-04-08 23:20:47  No: 3284  IP: [192.*.*.*]

皆様、お世話になっております。
DELPHIで作ったOCXをVBで使用すると、VBのプロジェクトファイル保存時に「予期せぬエラー」と出てしまいます。どうやら、パラメータにPictureを使っているところがあり、SetOlePictureを使用しているところで出ているようなのですが良い回避方法をご存知ありませんでしょうか?
また、OCXのなかでIniファイルを読み込んでいるのですがVBで使用時では何故か読み込めません。DELPHIでそのOCXを使うときは読み込めているのですが、
ちなみにTIniFile.Createから、ReadStringを使っているのですが、これらはOCXをVBで使うときは使用できないのでしょうか?ご存知の方よろしくお願いします。

編集    削除
TUU  2003-04-08 23:54:37  No: 3285  IP: [192.*.*.*]

自己レスです。
申し訳ありません。「予期せぬエラー」はPictureを使うプロパティのGet_XXXXで出ていました。今回のOCXには不要なので削除し解決しました。
しかし、INIファイルの件がまだ分かりませんどなたかよろしくお願いします。

編集    削除
たかみちえ  URL  2003-04-09 03:41:35  No: 3286  IP: [192.*.*.*]

OCXは作ったことないのでわかりませんけど、
TMemIniFileを使ってはどうでしょう?
(とりあえずTIniFileとはまったく別のことになりますし)

編集    削除
にしの  2003-04-09 05:58:49  No: 3287  IP: [192.*.*.*]

読み込めないとはどのような状態でしょうか。
エラー(例外など)が発生する、読み込んでも""になる、ReadStringすると落ちる etc...いろいろ考えられますが。

もちろん、渡しているパスはフルパスですよね?TApplication.ExeNameなどを元にできるかどうかは未確認ですが、VBからフルパスを渡せば確実です。

編集    削除
TUU  2003-04-09 22:29:19  No: 3288  IP: [192.*.*.*]

質問しておいて説明不足でした申し訳ありません。
渡しているパスはフルパスです。「読み込めない」とは読み込んでいるはずの情報が「""(空文字)」になってしまう状態ということです。
TIniFile.Create後にTIniFile.FileNameで確認するとパスも渡せているようです。
また、TMemIniFileも試してみましたが同じ結果でした。
どうぞ、よろしくお願いします。

編集    削除
にしの  2003-04-09 22:56:22  No: 3289  IP: [192.*.*.*]

VBのStringとDelphiのStringの違いかもしれません。
OCX側で、渡す際にPCharにしてみてください。それでも駄目でしょうか。
# その後、VB側でStrConvしないとだめかも

編集    削除
にしの  2003-04-09 22:57:24  No: 3290  IP: [192.*.*.*]

ちょっと言葉を間違えました。

OCX側から値を返す際、PCharにしてみてください。

編集    削除