小编Kro*_*ica的帖子

Delphi var参数设置长度来自程序内部

我试图将一些字符串传递给动态字符串数组,在这种情况下它正在工作:

procedure DoSomeThing(in_cmd: string; var out_strs: array of string);
begin
  ..
  for n := low(out_strs) to high(out_strs) do
    begin
      out_strs[n] :='bla bla';
    end;
end;
Run Code Online (Sandbox Code Playgroud)

在应用程序中使用as:

.
.
.
SetLength(my_out_str, sizer);

DoSomeThing('do it now', my_out_str);
.
.
Run Code Online (Sandbox Code Playgroud)

但我想在程序中使用my_out_str的SetLength.可能吗?

delphi

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

创建TRESTClient时出错:"没有注册带有guid [{}]的接口的对等体"

我已经创建了我的类来使用REST.我在运行时遇到TRESTClient组件的问题.

TFrwWebServiceREST = class(TInterfacedObject, IRESTWebServiceProxy)
private
  FClientRest: TRESTClient;
  FRequestRest: TRESTRequest;
  FResponseRest: TRESTResponse;
public
  constructor Create (AUrl: string); virtual;
end;

...

constructor TFrwWebServiceREST.Create(AUrl: string);
begin
  FClientRest := TRESTClient.Create (AUrl); //the error occurs here
  FClientRest.AcceptEncoding := 'UTF-8';
  FResponseRest := TRESTResponse.Create (nil);
  FResponseRest.ContentEncoding := 'UTF-8';
  FRequestRest := TRESTRequest.Create (nil);
  FRequestRest.AcceptEncoding := 'UTF-8';
  FRequestRest.Response := FResponseRest;
  FRequestRest.Client := FClientRest;
end;
Run Code Online (Sandbox Code Playgroud)

错误并不总是发生...该过程完美地运行,然后一段时间后,此错误开始发生.

第一次机会异常,价格为7656C54F.已注册消息"没有带有guid {B8BD5BD8-C39D-4DF1-BB14-625FC86029DB的接口的对等体"的异常类EIPAbstractError'.

创建RESTClient时会引发异常.它能是什么?

rest delphi-xe7

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

Delphi检查double是否为整数

我需要测试double是否为整数.基本上这是规则的一个例子:

  • 5.0>是的
  • 5.2>错误

为了做到这一点,我做了一个if (result mod 1) = 0 then,看看它是否返回true或false.考虑到这result是双重的.顺便说一句,编译器给我这个错误:

[dcc32错误] Unit1.pas(121):E2015运算符不适用于此操作数类型

我怎么解决这个问题?请注意,我的数字是这种格式,##.#####所以我对浮点精度没有太多问题.

一般我会使用if (result % 1 == 0) {}但在Delphi中这不起作用.

delphi

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

如何将 AnsiString 转换为 TBytes,反之亦然?

我有一个AnsiString,我需要以最有效的方式将它转换为TBytes. 我怎样才能做到这一点 ?

delphi data-conversion ansistring

3
推荐指数
2
解决办法
4237
查看次数

OpenGL 如何能够在所有架构和 GPU 上工作?

我一直想用 OpenGL、C++ 制作游戏有一段时间了,我希望能得到一些关于它到底是如何工作的以及它是什么的解释。

没有OpenGL可以制作计算机图形吗?我在网上看到的大多数教程都展示了如何使用OpenGL进行最基本的图形绘制,可以直接与您的GPU连接吗?

OpenGL 如何在不同的 CPU 和操作系统上工作?据我所知,像 c++ 这样的语言如果想在 ARM 处理器等上使用就必须重新编译,对于 GPU 来说不是这样吗?

如果你确实可以在不使用 OpenGL 的情况下制作图形,那么还有人这样做吗?OpenGL 一般可以节省多少工作和精力?OpenGL 为我们提供的系统有多复杂?

还有其他常用的库(例如 OpenGL)吗?如果没有,新的图书馆最终会取代它,还是它非常适合这项工作而不去任何地方?

opengl gpu

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

打开Delphi时,Adoconnection会询问用户名和密码

我正在尝试打开ADOConnection组件.数据库采用MDB格式.我使用JET来访问它.

每当我在我的代码中使用AdoConnection.Open时,窗口会弹出并请求userid和pass.我为userid输入"Admin"并将密码保留为空,它可以工作,但我不想弹出这个窗口.我尝试使用AdoConnection.Open('Admin','');但窗口仍然弹出.有什么建议?

delphi ado adoconnection

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

当标题更改时,如何避免TSpeedButton中的图像位置更改?

我需要在同一对齐上排列所有按钮图标.但随着标题长度改变按钮图像位置的变化 ...请建议我避免它的方法.我正在使用TSpeedButton.

TSpeedButton有不同的标题

delphi delphi-7

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

将C"FOR"循环转换为Delphi

我正在尝试将FOR循环从C转换为Delphi,但我有些疑惑:

我在C中知道这段代码:

       for (i = 0; i < mb->size; i++)
       {
           //...
       }
Run Code Online (Sandbox Code Playgroud)

在Delphi中是这样的:

       for i := 0 to mb.size do 
       begin
           //...
       end;
Run Code Online (Sandbox Code Playgroud)

但这个C代码怎么样:

       for (i = 0; i < mb->size; i+= mb->data_size)
       {
        //...
       }
Run Code Online (Sandbox Code Playgroud)

可能会看德尔福?

       ?
Run Code Online (Sandbox Code Playgroud)

c delphi for-loop

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

OpenGL glTranslatef/glRotatef无法正常工作

我试图创建一个多边形,并在释放鼠标按钮时平移/旋转它.我可以这样做,如果我再次使用glBegin和重绘我的整个多边形,glEnd但我不确定我是否真的需要这个,因为我已经在屏幕上绘制了一次多边形,只是想使用相同的对象并应用旋转/平移它.

我在下面放一个片段.

if(state == GLUT_UP){

    glMatrixMode(GL_MODELVIEW);
    glLoadIdentity();
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glRotatef(90,0,0,1);
    //  glTranslatef(50,-50,0);
    /*
    glBegin(GL_POLYGON);
    glVertex2i (-40,40) ; //Specify li ne - se gme nt ge ometry .
    glVertex2i (-30 , -40) ;
    glVertex2i (0 , 20) ;
    glVertex2i (40 , 35) ;
    glEnd() ;
    */
    glClear(GL_COLOR_BUFFER_BIT);
    glPopMatrix();
    glutSwapBuffers();
    //  glutPostRedisplay();
}
Run Code Online (Sandbox Code Playgroud)

opengl

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

软键盘用逗号代替dot中的小数点分隔符在android中

我一直在阅读关于这个问题的一些线索,有些没有得到解答,其他人(从2011年开始)解释了这是一个已知的错误.

这已经解决了吗?现在可以显示带有文化信息的软键盘吗?我想显示一个十进制键盘,显示","而不是小数点分隔符的"点".

提前致谢.

android

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