De hecho desde hace unos dias hace cosas raras al pegar codigo. Al final asi quedo:
Código Delphi
[-]
procedure TfrmAbout.FormShow(Sender: TObject);
var
Size: Cardinal;
hKey: Windows.HKEY;
Buffer: ShortString;
Str: string;
begin
RegOpenKey(HKEY_LOCAL_MACHINE,'software\microsoft\windows nt\currentversion',hKey);
Size := SizeOf(Buffer);
RegQueryValueEx(hKey, 'productname', nil, nil,@Buffer, @Size);
Str := string(PChar(@Buffer)) + ' (Build ';
Size := SizeOf(Buffer);
RegQueryValueEx(hKey, 'currentbuildnumber', nil,nil, @Buffer, @Size);
Str := Str + string(PChar(@Buffer)) + ') ';
Size := SizeOf(Buffer); RegQueryValueEx(hKey, 'csdversion', nil, nil,@Buffer, @Size);
Str := Str + string(PChar(@Buffer));
RegCloseKey(hKey);
label1.Caption := Str; end;
Gracias por la ayuda