Loadman,
Since the com control accepted the PBA command as a string of comma separated values, I wrote this function to convert the string to a byte array. Just makes it a bit easier to convert from the com to the dll.
if ConvertPBAString('0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0',PBAVals) then
LWZ_PBA(deviceList.handles[nDevice],addr(PBAVals[0]));
function ConvertPBAString(const sPBA: string; out aPBAVals: array of byte): boolean;
var
nIndex: integer;
slistBuf: TStringList;
begin
//sPBA must be a comma seperated list of LEDWiz profile values.
slistBuf := TStringList.Create;
slistBuf.CommaText := sPBA;
if slistBuf.Count <> 32 then
begin
result := false;
exit;
end;
for nIndex := 0 to 31 do
aPBAVals[nIndex] := StrToInt(slistBuf[nIndex]);
slistBuf.Free;
result := true;
end;