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;