array of Char へ代入するには?

解決


Nami  2005-06-03 19:08:43  No: 15337

Delphi初心者です。
helpやネットでも色々探したのですが、糸口が見つからずここで質問させていただきます。

Name : array[0..31] of Char;

という型に値を代入する方法が判りません。
ちなみに私が書いたソースは以下の通りです(多少省略してあります)

implementation

{$R *.dfm}

var
  FaceName : array[0..31] of Char;

procedure Form1.SetFont(myFaceName : array of Char);
begin
  FaceName := myFaceName;
end;

以上のように書いてコンパイルすると
  「互換性の無い型です」
とエラーが出てしまうのです。

ご回答できる方がいましたらお願い致します。


にしの  2005-06-03 19:19:07  No: 15338

array of charは、例えば
type
  ArrayChar = array of char;
などとしておいたほうが良いです。

その上で、

procedure SetFont(myFaceName : ArrayChar);
begin
  CopyMemory(@FaceName[0], @myFaceName[0], StrLen(@myFaceName[0]) + 1);
end;

これで、コピーはできます。
文字数のチェックはしていないので、それも加えた方がいいかも。


Nami  2005-06-03 19:42:09  No: 15339

>にしのさん

早速のご回答ありがとうございます。

CopyMemoryで上手くいきました。
これから原理等を調べてみます。

p.s. arrray of Char型はスマートに代入できないのですね(^^;)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加