标签: delphi-xe3

Delphi REST 服务器、Android 客户端使用压缩

我们正在构建一个 Delphi REST 服务器,该服务器向本机 Android 应用程序提供相当大的数据块(每个请求 1.5MB,数量很多)。一切正常,除了这种情况下的数据大小会出现问题,导致我们的环境中传输时间较长(移动数据速率有限)。我尝试ZLibCompression在 上添加过滤器DSHTTPWebDispatcher,但响应仅以未压缩的文本/html 形式再次返回。

有没有办法强制服务器使用在调度之前作为事件添加的过滤器?

服务器采用Delphi XE3构建。

delphi rest http-compression datasnap delphi-xe3

3
推荐指数
1
解决办法
2206
查看次数

Delphi XE3,丑陋的StringGrid的边框

与Delphi7相比,为什么StringGrid的边界在XE3中如此不清楚?如何解决?

在此输入图像描述

delphi delphi-7 delphi-xe2 delphi-xe3

2
推荐指数
1
解决办法
1264
查看次数

发现难以在delphi中处理JSON

我正在开发一个应用程序,它将从WoW军械库中获取你角色的数据.示例角色:我的魔兽角色(链接)

我将通过调用暴雪提供的API获取我想要的所有信息,我将得到响应JSON.示例JSON:上述字符的JSON响应(链接)

起初我尝试从JSON字符串操作中获取数据.这意味着,分割我的字符串,在字符串中搜索关键字以找到位置并将其格式化为单个数据片段,例如人才和统计数据.

这在开始时工作得很好但是因为我想要更多的数据这变得更难,因为我在所有字符串上运行的许多功能它只是变成了一个大模糊而且不清楚我在那一刻看到了什么.

有一个很好的方法来处理我的JSON?我正在考虑获得JSON并创建一个空类.在完成JSON它的同时会生成属性并将值存储在那里.但我不知道是否以及如何动态生成属性.

在未来,我想获得更多的数据,但首先我想在考虑之前启动并运行.

有没有人对此有任何想法/建议?

提前致谢.

delphi api json world-of-warcraft delphi-xe3

2
推荐指数
1
解决办法
2179
查看次数

最小化Firemonkey应用程序中的表单

我用这个:

Application.Minimize;
Run Code Online (Sandbox Code Playgroud)

在Vcl delphi应用程序中,但在Firemonkey中我得到了Undeclared识别错误.

如何最小化我的firemonkey表格?

delphi firemonkey delphi-xe3

2
推荐指数
1
解决办法
2998
查看次数

以JSON格式存储记录数组

如何通过SuperObject库将记录数组存储在JSON中.例如..

type
  TData = record
    str: string;
    int: Integer;
    bool: Boolean;
    flt: Double;
  end;

var
DataArray: Array[0..100] of TData;
Run Code Online (Sandbox Code Playgroud)

delphi json delphi-xe3 superobject

2
推荐指数
1
解决办法
3019
查看次数

E2251对"Pos"System.pas(28005)的过度调用

    [dcc32 Error] psystr.pas(249): E2251 Ambiguous overloaded call to 'Pos'
    System.pas(28005): Related method: function Pos(const string; const string; Integer):         Integer;
    System.pas(28165): Related method: function Pos(const WideString; const WideString;     Integer): Integer;
Run Code Online (Sandbox Code Playgroud)

我在以下功能上遇到上述错误.我怎样才能解决这个问题?代码是由另一个程序员给我的,但我是一个完全的业余,所以简单的答案将不胜感激!

function ExplodeStr(const AString: WideString; AWordIndex: Integer; AChar: Char): WideString;
var
  Index, Counter: Integer;
begin
  Result  := Trim(AString);
  Counter := 0;
  Index   := Pos(AChar + AChar, Result);
  while Index > 0 do
  begin
    Delete(Result, Index, 1);
    Index := Pos(AChar + AChar, Result);
  end;
  Index := Pos(AChar, Result);
  while ((Counter < AWordIndex) …
Run Code Online (Sandbox Code Playgroud)

delphi pascal delphi-xe3

2
推荐指数
1
解决办法
8082
查看次数

为什么我的Delphi服务应用程序没有启动?

Windows Service使用向导创建了一个新项目,推出了一些代码,编译了它,运行它/INSTALL然后我尝试使用它来启动它net start myservice但是我有一个service name not found错误; 然后我进入了服务中的控制面板,当我尝试开始单击"开始"链接时,对话框窗口会无限期地显示50%的进度条冻结.

这是我第一次尝试提供服务来更新我正在开发的主系统,为了测试我Timer每隔一分钟就说一次.任何人都可以注意到什么是错的,为什么它会像那样?

DPR文件包含:

{...}
begin
  if not Application.DelayInitialize or Application.Installing then
  begin
    Application.Initialize;
  end;
  Application.CreateForm(TZeusUpdateSevice, ZeusUpdateSevice);
  Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)

PAS文件:

{...}
procedure ServiceController(CtrlCode: DWord); stdcall; 
begin
  ZeusUpdateSevice.Controller(CtrlCode);
end;

function TZeusUpdateSevice.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TZeusUpdateSevice.ServiceAfterInstall(Sender: TService);
var
  regEdit : TRegistry;
begin
  regEdit := TRegistry.Create(KEY_READ or KEY_WRITE);
  try
    regEdit.RootKey := HKEY_LOCAL_MACHINE;

    if regEdit.OpenKey('\SYSTEM\CurrentControlSet\Services\' + Name,False) then
    begin
      regEdit.WriteString('Description','Mantém …
Run Code Online (Sandbox Code Playgroud)

delphi windows-services delphi-xe3

2
推荐指数
1
解决办法
4101
查看次数

Delphi服务侦听TCP或UDP

读了这个问题: 德尔福Windows服务的设计,我看到大部分的设计师在使用下面这段代码OnExecuteTServiceTThread方法,以保持服务活着.

while not Terminated do
begin
  // do something
end;
Run Code Online (Sandbox Code Playgroud)

但是,如果我需要(和我一样)来创建一个服务(使用印),以便发回一些认证数据由主应用程序发送的消息,我该怎么用这个代码做回应,忽略它或把一些Sleep()在它?

delphi udp windows-services delphi-xe3

2
推荐指数
1
解决办法
1357
查看次数

使用Delphi获取sqlite3.dll未找到错误

sqlite3.dll在Delphi应用程序中找不到错误.我的电脑上已有sqlite3.dll文件E://sqlite-dll-win32-x86-3071700

我的来源如下

procedure TForm2.Button1Click(Sender: TObject);
var
    Results: TDataSet;
begin
    SQLConnection1.Params.Add('Database=E://empn.s3db');
    SQLConnection1.LibraryName := 'E://sqlite-dll-win32-x86-3071700/sqlite3.dll';
    try
        SQLConnection1.Connected := true;
        SQLMonitor1.Active := True;

        SQLConnection1.Execute('Selct * from usergroup', nil, Results)

    finally

    end;
end;
Run Code Online (Sandbox Code Playgroud)

正如上面提到的代码已经指出了库的路径

SQLConnection1.LibraryName := 'E://sqlite-dll-win32-x86-3071700/sqlite3.dll';
Run Code Online (Sandbox Code Playgroud)

但我仍然得到像sqlite3.dll找不到的错误.如何解决此错误?

delphi sqlite delphi-xe3

2
推荐指数
1
解决办法
8571
查看次数

Delphi 2007和XE3中的差异函数Char/Chr

我使用函数Char和Chr与参数130,并在Delphi 2007 e XE3中表现不同.

Delphi 2007:Char(130)或Chr(130) - 结果:逗号

Delphi XE3:Char(130)或Chr(130) - 结果:#$ 0082

我使用AnsiChar解决问题(130).

我的问题是如果我在使用AnsiChar时遇到问题.我应该在整个项目中通过AnsiChar更改Chr/Char吗?

谢谢

delphi unicode char chr delphi-xe3

2
推荐指数
1
解决办法
3667
查看次数