小编Mas*_*ler的帖子

如何制作不能包含其他控件的控件?

我正在设计一个自定义控件,每次我在表单设计器中突出显示它,然后从控件选项板中选择另一个控件,新的控件最终在我的控件内,就像它是TPanel或TGroupBox一样.这不是我想要的,所以我怎么能阻止它发生?

delphi component-design

4
推荐指数
1
解决办法
161
查看次数

Delphi动态数组包含哪些簿记数据?

这是一个检查内存分配的简单程序.使用任务管理器检查值之前和之后建议每个动态数组占用大小为1的20字节内存.元素大小为4,这意味着簿记数据的开销为16字节.

从查看system.pas,我可以找到一个-4字节的数组长度字段,以及-8字节的引用计数,但我似乎找不到任何对其他的引用8.任何人都知道他们做了什么?

示例程序:

program Project1;

{$APPTYPE CONSOLE}

type
   TDynArray = array of integer;
   TLotsOfArrays = array[1..1000000] of TDynArray;
   PLotsOfArrays = ^TLotsOfArrays;

procedure allocateArrays;
var
   arrays: PLotsOfArrays;
   i: integer;
begin
   new(arrays);
   for I := 1 to 1000000 do
      setLength(arrays^[i], 1);
end;

begin
  readln;
  allocateArrays;
  readln;
end.
Run Code Online (Sandbox Code Playgroud)

delphi overhead dynamic-arrays data-structures

4
推荐指数
1
解决办法
539
查看次数

如何为整个项目设置$ RTTI指令?

我正在努力将一个旧项目从Delphi 2007迁移到Delphi 2010.我发现有一件事是生成的可执行文件的大小增加了一倍以上,而且原始版本已经很大了.(超过50 MB.)我怀疑它与扩展RTTI有很大关系.

由于该项目早于Delphi 2010,因此它不会在任何地方使用扩展的RTTI,我希望保守包含它.有没有办法使用"项目选项"对话框全局设置{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}为默认值?我曾期望在$WEAKLINKRTTI某个地方有一个选择,但是我没有看到它们.

有没有人知道这是否可以从"传递给编译器的附加选项"字段或其他方式完成?我真的不想为项目中的每个单元添加一个包含文件,因为有几千个...

delphi rtti delphi-2010

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

如何使TCheckListBox垂直滚动?

我在表单上有一个TCheckListBox.它的Columns属性设置为2,如果有多个项目可以放在屏幕上的两列中,它会在控件底部放置一个水平滚动条.

事实上,这种形式的布局,垂直滚动会更方便.但我似乎无法弄清楚如何让盒子做到这一点.我认为将Columns设置为1应该可以工作,但事实并非如此.

任何人都知道如何使TCheckListBox垂直滚动而不是水平滚动?

delphi delphi-2010 tchecklistbox

4
推荐指数
1
解决办法
2038
查看次数

Delphi - TPerlRegEx/RegExBuddy问题

我遇到了RegEx和Delphi 2k9(Win32)的问题.我得到以下错误:$ 7C812AFB的第一次机会异常.消息'TPerlRegEx.Compile()的异常类异常 - 请在RegEx中指定正则表达式'.我从网站上获得了最新版本的TPerlRegEx.使用其defualt设置(使用DLL)

我包括演示源代码.它使用RegExBuddy生成的代码,最新版本.

http://www.4shared.com/file/236428923/97478b61/googleresultstestdata.html http://www.4shared.com/file/236439483/e0acbe6d/Unit2.htmlDelphi FORM http://www.4shared.com/file/236439473/6734a2a2/Unit2.htmlDelphi PAS

谢谢你的帮助

-Brad

数据来自谷歌外部关键字工具RegEx可以使用一些改进...但在RegExBuddy中工作不在Delphi中

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, PerlRegEx;

type
  TForm2 = class(TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
 Regex: TPerlRegEx;
 GroupIndex: Integer;
begin
Regex := TPerlRegEx.Create(nil);
Regex.RegEx := 'criteria\.push\(new kpCriterion\(&#39;(?P<keyword>(.*?))&#39;, (?P<number1>(.*?)),'#13#10'''(?P<localsearch>(.*?))'', ''(?P<globalsearch>(.*?))'', (?P<localsearchnum>(.*?)), …
Run Code Online (Sandbox Code Playgroud)

regex delphi pcre regexbuddy

4
推荐指数
1
解决办法
2930
查看次数

如何从BPL中提取资源?

如果我在EXE中有一个资源并且我想要提取它,那就非常简单了.就像是:

stream := TResourceStream.Create(HInstance, ResourceName, RT_RCDATA);
Run Code Online (Sandbox Code Playgroud)

这是有效的,因为全局变量HInstance是EXE的句柄.BPL中的代码有没有类似的方法来获取它所属的包的句柄,所以我可以从中提取资源?

delphi resources packages bpl

4
推荐指数
1
解决办法
1304
查看次数

用于DelphiXE的THtmlViewer

我需要一个可以在DelphiXE中运行的PBears thtmlviewer版本.

我发现Google代码页(http://code.google.com/p/thtmlviewer)现在支持了,但我无法弄清楚在哪里/如何下载我可以使用的版本.

我也无法弄清楚如何在网站上问别人.

我错过了一些明显的东西,还是没有可用的下载?

史蒂夫...

delphi

4
推荐指数
1
解决办法
871
查看次数

如何在Firebird数据库中查找所有文本blob字段

如果我想查找类型为Firebird数据库中所有列的表名和列名BLOB SUB_TYPE TEXT,那么返回此信息的正确元数据查询是什么?

sql firebird metadata

4
推荐指数
1
解决办法
1156
查看次数

如何在Firebird Embedded中访问UDF DLL?

我尝试为Firebird构建UDF.我能够编译DLL并向数据库注册UDF,但我实际上无法运行它.每一次,我都会收到错误:

invalid request BLR at offset 63.
function [FUNCTION_NAME] is not defined.
module name or entrypoint could not be found.
Run Code Online (Sandbox Code Playgroud)

我已经尝试将UDF DLL放在与应用程序相同的文件夹中,并且放在与数据库相同的文件夹中,但无论如何它似乎永远不会加载它.

当我尝试Googling寻求帮助时,我得到的所有结果似乎要么通过将它放在服务器的UDF文件夹中来使它在FB服务器上工作(这不适用于我使用FB Embedded)或者通过编辑conf文件在FB服务器上修复权限问题(由于我使用的是FB Embedded,因此不适用).

那么,如果我使用FB Embedded,如何确定/配置放置UDF DLL的正确位置

firebird

4
推荐指数
1
解决办法
2225
查看次数

JavaScript如何在内部表示DateTime值?

我正在开发一个使用JavaScript编写脚本的程序.像大多数脚本系统一样,脚本可以调用预定义的本机函数库,我只是添加了一个新的脚本系统.

新函数采用DateTime(它在Delphi中,其中DateTime由Double表示),字符串和布尔值.最后两个参数来得很好,但似乎在系统的某个地方,时间值正在变得严重.我得到了1362394800000,而不是可识别的DateTime,根据Delphi的时间戳方案,这没有任何意义.

我在哪里可以找到有关JavaScript如何表示DateTime值的信息,因此我可以弄清楚如何将其转换为我的Delphi代码可以使用的东西?(这是使用Windows 7标准的Microsoft JScript系统,以防实施情况发生变化.)

javascript

4
推荐指数
1
解决办法
455
查看次数