☆動的配列のメモリ確保で・・・。
動的配列のメモリ確保を別処理にした場合に、
SetLengthのところでエラーになりました。
エラーメッセージの内容です。
次のように array of String を Types 名前空間で定義されている TStringDynArray に置き換えることにより解決しました。
[20071023追記]
この件は、動的配列の問題ではなく、正確にはオープン配列パラメータの仕様です。
タイトルが動的配列となっており、ややこしくてすみません。
詳しくはヘルプの オープン配列パラメータ をご覧下さい。 「オープン配列パラメータは SetLength には渡せません。」ときちんと載っています。
procedure Shori(var AOR: array of String); begin SetLength(AOR, 10); end; procedure TForm1.Button1Click(Sender: TObject); var AOR: array of String; begin Shori(AOR); end;
エラーメッセージの内容です。
[DCC エラー] Unit1.pas(30): E2008 互換性の無い型です
次のように array of String を Types 名前空間で定義されている TStringDynArray に置き換えることにより解決しました。
uses Types; procedure Shori(var AOR: TStringDynArray); begin SetLength(AOR, 10); end; procedure TForm1.Button1Click(Sender: TObject); var AOR: TStringDynArray; begin Shori(AOR); end;
[20071023追記]
この件は、動的配列の問題ではなく、正確にはオープン配列パラメータの仕様です。
タイトルが動的配列となっており、ややこしくてすみません。
詳しくはヘルプの オープン配列パラメータ をご覧下さい。 「オープン配列パラメータは SetLength には渡せません。」ときちんと載っています。
| 固定リンク