小编Mas*_*ler的帖子

当我尝试使用“搜索”菜单下的“查找引用”时,Delphi 2007 IDE 崩溃

升级到 Windows 7 后,除了这个版本之外,所有似乎都可以在我的 Delphi 2007 版本中运行。我知道 2007 不是为 win 7 构建的,但我不确定操作系统是否是原因。我的朋友正在使用它没有问题。当我使用“查找本地引用”时一切正常。

你知道解决这个问题吗?有些dll注册可能是?

ide delphi crash delphi-2007

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

有关调试Excel的提示

我有一个库可以将VCL网格的内容导出为XLS格式.(不确定哪个版本的XLS格式;这是问题的一部分.)它通常可以正常工作,但在某些情况下,当我在Excel 2007中打开由此库导出的XLS时,它说"Excel找到了不可读的内容'[myfile.xls]'.你想恢复这个工作簿的内容吗?"

它能够正确地恢复它,所以不管问题是什么,它一定不会那么严重,但我有一点时间搞清楚问题什么.我不能做任何简单的事情,比如在调试器下运行Excel,因为它是专有软件.我已经尝试将修正后的版本保存为各种版本的XLS并将这两个文件区分开来,但我找不到任何看起来像原始文件格式一样远的版本.恢复完成后,它会向我提供一个XML文件的链接,该文件指出文档已恢复,而不会对已发现或修复的错误进行任何描述.

有什么方法可以获得一些关于Excel期望看到什么以及它看到了什么的实际详细信息?

delphi excel export-to-excel

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

如何在OpenGL中绘制旋转棱镜?

我正在尝试绘制一个在其轴上旋转的简单晶体.我可以通过绘制一个金字塔,然后将其再次倒置来轻松地获得正确的形状,但我有两个问题.

首先,即使我用相同的颜色绘制所有颜色,其中两个面的颜色与另外两个颜色不同.

其次,它在每个金字塔上放置一个"底部",通过水晶的半透明墙可以看到,这会破坏效果.有没有办法摆脱它?

这是我用来设置和绘制GL场景的代码.当然,还有比这更多的OpenGL代码,但这是相关的部分.

procedure Initialize;
begin
  glShadeModel(GL_SMOOTH);
  glClearColor(0.0, 0.0, 0.0, 0.5);
  glClearDepth(1.0);
  glEnable(GL_DEPTH_TEST);
  glDepthFunc(GL_LEQUAL);
  glEnable(GL_BLEND);
  glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
  glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST);
end;

procedure Draw; //gets called in a loop
begin
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  glLoadIdentity();
  glTranslatef(-1.5,-0.5,-6.0);
  glRotatef(rotation,0.0,1.0,0.0);
  glBegin(GL_TRIANGLE_FAN);
    glColor4f(0, 0, 1, 0.2);
    glVertex3f(0, 3.4, 0);
    glVertex3f(-1, 0, -1);
    glVertex3f(-1, 0, 1);
    glVertex3f(1, 0, 1);
    glVertex3f(1, 0, -1);
    glVertex3f(-1, 0, -1);
  glEnd;
  glBegin(GL_TRIANGLE_FAN);
    glVertex3f(0, -3.4, 0);
    glVertex3f(-1, 0, -1);
    glVertex3f(-1, 0, 1);
    glVertex3f(1, 0, 1);
    glVertex3f(1, 0, -1);
    glVertex3f(-1, 0, -1);
  glEnd;
  rotation := …
Run Code Online (Sandbox Code Playgroud)

delphi opengl

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

TForm 上的 Rtti GetFields 和 GetAttributes

我有一个这样的 TForm:

TMyForm = class (TForm)
  [MyAttr('Data')] 
  edit1: TEdit;
private
 FData: String;
end
Run Code Online (Sandbox Code Playgroud)

当我尝试通过 RTTI 获取此表单的字段时,我只获取了 edit1 字段,而不是 FDATA,并且当我查询 edit1 字段属性时,会得到一个空数组。

对于另一个不继承 TForm 的类,一切正常。为什么?

编辑样品

type


{$RTTI EXPLICIT FIELDS([vcPrivate,vcProtected, vcPublic])}
  TForm3 = class(TForm)
    [TCustomAttribute]
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    [TCustomAttribute]
    FData: String;
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);
var
  LCtx: TRttiContext;
  LField: TRttiField;
  LAttr: TCustomAttribute;
begin
  for LField in LCtx.GetType(Self.ClassInfo).GetDeclaredFields do
  begin
      Memo1.Lines.Add(lField.Name);
      for …
Run Code Online (Sandbox Code Playgroud)

delphi rtti

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

有没有什么好的方法在SQL Server中构建逗号分隔列表?

在Firebird中,有一个聚合调用List()将多个结果转换为以逗号分隔的字符串.

此功能似乎不存在于SQL Server中.有没有相当于它不涉及使用或构建自己的CLR UDF 的大,长,丑,慢的解决方法for xml?(是的,我知道那些方法.寻找我可能不知道的东西.)

sql sql-server aggregate-functions

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

Ruby:如何检查一个块接受多少参数?

我正在研究Ruby,尝试建立一个以块为参数的方法.我知道你这样做是通过给出一个&前缀的最后一个参数,但是一旦它被传递,我该如何验证呢?

例如,如果我想验证参数是否为字符串,我可以使用is_a?(String).但是,如何验证我收到的是一个接受1个参数的块?还是2?

ruby

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

为什么我从Internet下载的帮助文件只包含空白页?

我正在尝试调试使用WINIO的代码,但不幸的是我找不到任何关于它应该做什么的好的解释.标准下载附带一个CHM帮助文件,但只是为了加重侮辱伤害,帮助文件的每一页都是空白的!

在此输入图像描述

帮助文件有问题,还是真的是空页?

windows chm winapi

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

如何使用任意字符串编码?

我正在尝试使用一些针对中国公司发布的API的代码.我有一个规范和一些示例代码(在Java中)足以理解大部分正在发生的事情,但我碰到了一件我不知道该怎么做的事情.

    String ecodeform = "GBK";
    String sm = new String(Hex.encodeHex("Insert message here".getBytes(ecodeform)));  //test message
Run Code Online (Sandbox Code Playgroud)

它是从原始字符串的十六进制表示的char数组结果创建一个字符串,以GBK格式编码(标准的中文字符编码,相当于英文文本的ASCII.)我可以弄清楚如何在Delphi中完成大部分工作,但我不知道如何将字符串编码为GBK,这是此API特别要求的.

SysUtils,有一个TEncoding自带的几个内置的编码,如阶级UTF8,UTF16和"默认"(该系统的默认代码页),但我不知道如何建立一个TEncoding对于任意编码,如GBK .

有谁知道如何设置它?

delphi encoding

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

什么可以导致glCreateShader在某些点返回0?

我遇到了一个非常奇怪的OpenGL错误,其中调用glCreateShader多次,然后在稍后我尝试调用它失败,返回0. glGetError之后立即调用也返回0,表示没有错误.搜索的时候,我看到有关问题glCreateShader从来没有工作,这是不是这里的情况,还有一些人提的是,它可以返回0,如果调用者之间glBeginglEnd,这我没有使用.环顾四周,我没有在调用堆栈中看到任何明显的东西,这些东西应该表明我正在使用OpenGL做一些奇怪的事情.

glGetString(GL_VERSION) 如果有帮助,返回"4.3.0 - Build 10.18.10.3977".

任何人都知道这里发生了什么?

opengl

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

为什么一个 itertools.groupby 分组只能迭代一次?

我最近不得不调试一些类似这样的代码:

for key, group in itertools.groupby(csvGrid, lambda x: x[0]):
    value1 = sum(row[1] for row in group)
    value2 = sum(row[2] for row in group)
    results.append([key, value1, value2])
Run Code Online (Sandbox Code Playgroud)

在每个结果集中,value2作为0. 当我查看它时,我发现代码第一次迭代时group,它消耗了它,因此第二次迭代时有零个元素。

直觉上,我希望group是一个可以无限次迭代的列表,但它的行为就像一个只能迭代一次的迭代器。这种情况有什么好的理由吗?

python python-itertools

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