Delphi10を使っています。
動的配列を使って関数からデータを返したいのですが、
//-----------------
interface
uses
Windows, ...
type
TArrayOfString = array of string;//
//-----------------
とメインunitで宣言しても関数用のunitでも 「TArrayOfString = array of string;」を宣言しないとエラーになります。
しかし、同じTArrayOfStringでもunitが違うと、コンパイラでは同じものとして判断してくれません。
関数用のunitではどこか別の場所に宣言できるのでしょうか?
それとも、何か方法があるのでしょうか?
No.1ベストアンサー
- 回答日時:
たとえば、次のように定義したユニットがあり、
unit Unit2;
interface
type
TArrayOfString = array of string;
function Func: TArrayOfString;
implementation
function Func: TArrayOfString;
begin
Result := ['foo', 'bar'];
end;
end.
次のように使用した場合、コンパイルエラーになるということでしょうか。(マルチデバイスアプリケーションです)
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics,
FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ private 宣言 }
public
{ public 宣言 }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
uses Unit2;
procedure TForm1.FormCreate(Sender: TObject);
var
R: TArrayOfString;
begin
R := Func;
end;
end.
手元の環境(Delphi 10 Seattle)では、このコードは問題なく動作しています。
具体的なサンプルコードを教えていただけると、適切な回答ができると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 ”Toyota unit Hino” のunitの使い方を教えてください 2 2022/08/26 13:36
- JavaScript 条件に該当した時のみ定数を宣言する事はできますか 8 2023/03/15 05:55
- C言語・C++・C# C言語 ポインタ 配列 2 2022/06/02 17:29
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- Excel(エクセル) Excel マクロで For 文のインデックスを先に宣言する理由 7 2022/08/27 00:26
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- XML MSFormsとは何ですか? 2 2022/05/02 09:38
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- 生物学 【生命科学】ヒトが1日に消費するATP量?(精度を変えて再計算) 3 2022/10/07 18:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPのセレクトボックスの初期値...
-
ファイルの書き込みについて教...
-
2次元配列CSVのソート
-
特定の文からメールアドレスの...
-
読み(あ行~わ行)ごとに分け...
-
数独かを判断するプログラム
-
【PHP】配列のキー名の修正は可...
-
np.stack()とnp.array()の違い
-
C言語 最大値と最小値を求めて...
-
STLのvectorで作った配列をメン...
-
PHPで10連ガチャを作成したいの...
-
fgetc関数について
-
PHPでユニークIDを作る
-
行列
-
C言語の配列をPush(追加)する...
-
System.String.Splitでエラー
-
配列の要素(value)に、変数を...
-
配列をループでたくさん宣言し...
-
【PHP】配列内のある値以上をカ...
-
Resource id #3 と表示されま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スカラーのベクトル微分
-
STLのvectorで作った配列をメン...
-
特定の文からメールアドレスの...
-
配列の要素(value)に、変数を...
-
読み(あ行~わ行)ごとに分け...
-
ファイルの書き込みについて教...
-
verilogで、配列の一部をタスク...
-
CArrayの要素としてCStringArra...
-
pythonのnumpyでの繰り返しでの...
-
C言語の配列をPush(追加)する...
-
php キーソート キーが重複した...
-
CArrayのソート
-
【PHP】配列のキー名の修正は可...
-
多次元配列をエンコードする関...
-
PHPは何故値渡しより参照渡しの...
-
cakephpでのトランザクション処...
-
pg_copy_fromの使い方について...
-
array_intersectで空欄を比較し...
-
濁点のソート
-
配列中のあるキー、値を取得し...
おすすめ情報
回答ありがとうございます。
関数を定義しているunit2でTArrayOfStringを宣言して、unit1側にuse unit2とするわけですか。
試してみます。
(3つのunitが絡んでいるので、修正するのに時間がかかりそうです)