OLEオートメーション接続 VB→Delphi書き換えで、メンバが見つかりません

OLEオートメーションサーバへ接続するアプリケーションを VBからDelphiに書き換えていた時に「メンバが見つかりません」が頻発

  1. Sub Hogehoge()  
  2.     Dim SV As Object  
  3.     Dim S As String  
  4.   
  5.     Set SV = CreateObject("Hoge.hoge")  
  6.     Set S = SV.GetStr("key")  
  7.     Set SV = Nothing  
  8. End Sub  

  1. procedure Hogehoge()  
  2. var SV: OleVariant;  
  3.     S: String;  
  4. begin  
  5.     SV := CreateOleObject('Hoge.hoge');  
  6.     S := SV.GetStr('key'); // GetStr がプロパティの場合 SV.GetStr['key'];   
  7.     SV := Unassign;  
  8. end;  

Delphi ではメソッドの引数は( )、プロパティの引数は [ ]
VBでは、メソッドの引数もプロパティの引数も ( )
なので、該当メンバがプロパティの場合 [ ] に変更しなくてはならない
また、引数なしのプロパティに () をつけても同様の結果に

資料がない場合、どちらかの環境でタイプライブラリを取り込んで、定義を確認すると明確になる



コメント