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;
以上のように書いてコンパイルすると
「互換性の無い型です」
とエラーが出てしまうのです。
ご回答できる方がいましたらお願い致します。
array of charは、例えば
type
ArrayChar = array of char;
などとしておいたほうが良いです。
その上で、
procedure SetFont(myFaceName : ArrayChar);
begin
CopyMemory(@FaceName[0], @myFaceName[0], StrLen(@myFaceName[0]) + 1);
end;
これで、コピーはできます。
文字数のチェックはしていないので、それも加えた方がいいかも。
>にしのさん
早速のご回答ありがとうございます。
CopyMemoryで上手くいきました。
これから原理等を調べてみます。
p.s. arrray of Char型はスマートに代入できないのですね(^^;)
ツイート | ![]() |