升级到 Windows 7 后,除了这个版本之外,所有似乎都可以在我的 Delphi 2007 版本中运行。我知道 2007 不是为 win 7 构建的,但我不确定操作系统是否是原因。我的朋友正在使用它没有问题。当我使用“查找本地引用”时一切正常。
你知道解决这个问题吗?有些dll注册可能是?
我有一个库可以将VCL网格的内容导出为XLS格式.(不确定哪个版本的XLS格式;这是问题的一部分.)它通常可以正常工作,但在某些情况下,当我在Excel 2007中打开由此库导出的XLS时,它说"Excel找到了不可读的内容'[myfile.xls]'.你想恢复这个工作簿的内容吗?"
它能够正确地恢复它,所以不管问题是什么,它一定不会那么严重,但我有一点时间搞清楚问题是什么.我不能做任何简单的事情,比如在调试器下运行Excel,因为它是专有软件.我已经尝试将修正后的版本保存为各种版本的XLS并将这两个文件区分开来,但我找不到任何看起来像原始文件格式一样远的版本.恢复完成后,它会向我提供一个XML文件的链接,该文件指出文档已恢复,而不会对已发现或修复的错误进行任何描述.
有什么方法可以获得一些关于Excel期望看到什么以及它看到了什么的实际详细信息?
我正在尝试绘制一个在其轴上旋转的简单晶体.我可以通过绘制一个金字塔,然后将其再次倒置来轻松地获得正确的形状,但我有两个问题.
首先,即使我用相同的颜色绘制所有颜色,其中两个面的颜色与另外两个颜色不同.
其次,它在每个金字塔上放置一个"底部",通过水晶的半透明墙可以看到,这会破坏效果.有没有办法摆脱它?
这是我用来设置和绘制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) 我有一个这样的 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) 在Firebird中,有一个聚合调用List()将多个结果转换为以逗号分隔的字符串.
此功能似乎不存在于SQL Server中.有没有相当于它不涉及使用或构建自己的CLR UDF 的大,长,丑,慢的解决方法for xml?(是的,我知道那些方法.寻找我可能不知道的东西.)
我正在研究Ruby,尝试建立一个以块为参数的方法.我知道你这样做是通过给出一个&前缀的最后一个参数,但是一旦它被传递,我该如何验证呢?
例如,如果我想验证参数是否为字符串,我可以使用is_a?(String).但是,如何验证我收到的是一个接受1个参数的块?还是2?
我正在尝试调试使用WINIO的代码,但不幸的是我找不到任何关于它应该做什么的好的解释.标准下载附带一个CHM帮助文件,但只是为了加重侮辱伤害,帮助文件的每一页都是空白的!

帮助文件有问题,还是真的是空页?
我正在尝试使用一些针对中国公司发布的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 .
有谁知道如何设置它?
我遇到了一个非常奇怪的OpenGL错误,其中调用glCreateShader多次,然后在稍后我尝试调用它失败,返回0. glGetError之后立即调用也返回0,表示没有错误.搜索的时候,我看到有关问题glCreateShader从来没有工作,这是不是这里的情况,还有一些人提的是,它可以返回0,如果调用者之间glBegin和glEnd,这我没有使用.环顾四周,我没有在调用堆栈中看到任何明显的东西,这些东西应该表明我正在使用OpenGL做一些奇怪的事情.
glGetString(GL_VERSION) 如果有帮助,返回"4.3.0 - Build 10.18.10.3977".
任何人都知道这里发生了什么?
我最近不得不调试一些类似这样的代码:
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是一个可以无限次迭代的列表,但它的行为就像一个只能迭代一次的迭代器。这种情况有什么好的理由吗?