我需要填充一个json文件,现在我有这样的东西:
{"element":{"id":10,"quantity":1}}
Run Code Online (Sandbox Code Playgroud)
我需要添加另一个"元素".我的第一步是将json放在Object类型中cart = JSON.parse,现在我需要添加新元素.我想我必须使用cart.push添加另一个元素,我试过这个:
var element = {};
element.push({ id: id, quantity: quantity });
cart.push(element);
Run Code Online (Sandbox Code Playgroud)
但是当我尝试做的时候我得到错误"对象没有方法推送" element.push,我认为我做了一些非常错误的事情,因为我没有在任何地方告诉"元素".
我怎样才能做到这一点?
编辑:对不起,我头脑中有很多困惑.
我认为在从数据中获取数据时我只能得到对象类型JSON.parse,但我首先得到了我在JSON中的内容.
放数组而不是对象解决了我的问题,我也在这里使用了很多建议,谢谢大家!
在某些情况下,Windows 10的游戏栏会打开我的应用程序(使用Delphi,VCL制作).这不是游戏,我不直接使用DirectX或OpenGL,但它打开了.
具体来说,当我减少托盘我的应用程序并打开一个弹出窗口时,会出现游戏栏.
我发现有很多网站都有完全禁用Windows 10游戏栏的教程(像这样),但我想只为我的应用程序禁用,我不认为用户会很高兴我的应用程序默默禁用了Windows功能
这可能吗?我找不到任何关于它的文档
我正在使用TDialogServiceAsync.InputQuery()单个输入进行简单的调用.它只是忽略了Cancel按钮和窗口的X关闭按钮.
但Ok按钮工作正常.
这是我的代码:
uses
FMX.DialogService.Async;
procedure TForm1.Button1Click(Sender: TObject);
begin
TDialogServiceAsync.InputQuery('Title',
['Insert value'], ['bla bla'],
procedure(const AResult: TModalResult; const AValues: array of string)
begin
if Aresult = mrOk then
ShowMessage('Ok!');
if Aresult = mrCancel then
ShowMessage('Cancel!'); // this is never called
end);
end;
Run Code Online (Sandbox Code Playgroud)
如果我按下Cancel,则InputQuery窗口不会关闭,并且不会调用我的回调过程.
按下Cancel按钮后如何关闭InputQuery表单?
我正在使用RADStudio 10.1柏林.
编辑:
我做了几个测试:
我需要声明一个具有用户定义维度的数组.这个数组在一个非常大的程序中,更改为列表可能是一个很大的问题.
现在我的数组声明如下:
Buffer: array[0..myCostant * 2] of Byte;
Run Code Online (Sandbox Code Playgroud)
和myCostant是,像它说,已定义的常量.现在我需要使用变量,得到这样的东西:
Buffer: array[0..myVar * 2] of Byte;
Run Code Online (Sandbox Code Playgroud)
但我不能在数组定义中使用变量.
如何在不改变其他东西的情况下解决这个问题?这个变量是上限的,所以我能用这个max size声明数组并用另一条指令减少它吗?