wenn ein Pointer auf ein Byte erwartet wird darfst du nicht einfach ein normale Byte nehmen sondern eben einen Pointer auf ein Byte. Dudem ist ein dynamisches Array in Delphi etwas ganz anderes als ein Array in C
function CasioIO_Aftersend(handle: Integer; datatype, name, rows, columns: pbyte; values: PDouble):Integer; stdcall; external thedll;
wenn du nicht so fitt in c bist nehm einfach mal einen Header-convertierer der automatisch aus C-Headern Delphi-Header macht. Und dann schau dir an was der Converter gemacht hat um zu verstehen was die einzelnen Dinge in C bedeuten.