<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jan 19, 2017 at 6:50 PM, fredvs <span dir="ltr"><<a href="mailto:fiens@hotmail.com" target="_blank">fiens@hotmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello.<br>
<br>
With this code, the result of the function does not have same format as the<br>
array input:<br>
<br>
Why ?<br>
<br>
type<br>
  TArFloat = array of cfloat;<br>
<br>
function array_in_out(arrayin: TArFloat): TArFloat;<br>
begin<br>
result := arrayin;<br>
end;<br></blockquote><div><br></div><div>It works fine here. Eg:</div><div><br></div><div>=== begin code ===</div><div><br></div><div><div><font size="1" face="monospace, monospace">type<br></font></div><div><font size="1" face="monospace, monospace">  TArFloat = array of cfloat;</font></div><div><font size="1" face="monospace, monospace"><br></font></div><div><font size="1" face="monospace, monospace">function array_in_out(arrayin: TArFloat): TArFloat;</font></div><div><font size="1" face="monospace, monospace">var</font></div><div><font size="1" face="monospace, monospace">  i: byte;</font></div><div><font size="1" face="monospace, monospace">begin</font></div><div><font size="1" face="monospace, monospace">  for i := low(arrayin) to high(arrayin) do</font></div><div><font size="1" face="monospace, monospace">    arrayin[i] *= 10;</font></div><div><font size="1" face="monospace, monospace">  Result := arrayin;</font></div><div><font size="1" face="monospace, monospace">end;</font></div><div><font size="1" face="monospace, monospace"><br></font></div><div><font size="1" face="monospace, monospace">...</font></div><div><font size="1" face="monospace, monospace"><br></font></div><div><font size="1" face="monospace, monospace">var<br></font></div><div><font size="1" face="monospace, monospace">  item: cfloat;</font></div><div><font size="1" face="monospace, monospace">  thebuffer: TArFloat;</font></div><div><font size="1" face="monospace, monospace">begin</font></div><div><font size="1" face="monospace, monospace">  SetLength(thebuffer, 3);</font></div><div><font size="1" face="monospace, monospace">  thebuffer[0] := 1;</font></div><div><font size="1" face="monospace, monospace">  thebuffer[1] := 2;</font></div><div><font size="1" face="monospace, monospace">  thebuffer[2] := 3;</font></div><div><font size="1" face="monospace, monospace">  WriteLn('before');</font></div><div><font size="1" face="monospace, monospace">  for item in thebuffer do</font></div><div><font size="1" face="monospace, monospace">    WriteLn(item.ToString);</font></div><div><font size="1" face="monospace, monospace">  thebuffer := array_in_out(thebuffer);</font></div><div><font size="1" face="monospace, monospace">  WriteLn('after x10');</font></div><div><font size="1" face="monospace, monospace">  for item in thebuffer do</font></div><div><font size="1" face="monospace, monospace">    WriteLn(item.ToString);</font></div><div><font size="1" face="monospace, monospace">end;</font></div></div><div><font size="1" face="monospace, monospace"><br></font></div><div><font size="1" face="monospace, monospace">// output:</font></div><div><font size="1" face="monospace, monospace"><br></font></div><div><div><font size="1" face="monospace, monospace">before</font></div><div><font size="1" face="monospace, monospace">1</font></div><div><font size="1" face="monospace, monospace">2</font></div><div><font size="1" face="monospace, monospace">3</font></div><div><font size="1" face="monospace, monospace">after x10</font></div><div><font size="1" face="monospace, monospace">10</font></div><div><font size="1" face="monospace, monospace">20</font></div><div><font size="1" face="monospace, monospace">30</font></div></div><div><br></div><div>=== end code ===</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Some more explaination.<br>
<br>
If in a code I use:<br>
var<br>
thebuffer: TArFloat;<br>
<br>
// thebuffer was filled with some float-samples<br>
<br>
thebuffer := array_in_out(thebuffer);<br>
<br>
It is not neutral, the data are affected (in audio the data are noisy).<br>
<br>
What is wrong ?<br></blockquote><div><br></div><div>Are you using that function as callback with some (C/C++) library? If so, check its parameter calling convention, declaring it as `<span style="font-family:monospace,monospace;font-size:x-small">function array_in_out(arrayin: TArFloat): TArFloat; cdecl;</span>`.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Thanks.<br>
<br>
Fre;D</blockquote><div><br></div></div>-- <br><div class="gmail_signature"><div dir="ltr"><div>Silvio Clécio</div></div></div>
</div></div>