小编Joh*_*ica的帖子

C++ Builder中的#region等价物?与组代码类似?

我想知道是否有相当于RAD Studio中Visual Studio的#regions.

我在工作中使用Delphi和C++构建器IDE,我希望能够使用像region这样的东西.

我的同事和我还没有找到一种相同的分组代码方式......你知道吗?

delphi c++builder region

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

静态图像上的缓存过期

我有一个php站点使用html5在godaddy上的linux服务器上运行.我需要在静态图像和css文件上设置缓存过期日期.我还需要gzip一个css文件,似乎无法找到正确的语法.我不确定我是否太复杂或者是什么.我是否正确认为我可以在我的php页面顶部使用过期标头完成此操作?我感到迷茫,我知道自己在做什么!我无法控制服务器.

php caching

8
推荐指数
1
解决办法
1万
查看次数

Delphi麻烦:排序Tobjectlist <>

我想使用内置的排序方法对我的通用tobjectlist进行排序.

这是我做的:

//create the list object
myList := TObjectList<MyType>.Create(false);   

[...] //populate the list with unsorted entries

//sort the list
myList.sort(@Comparer);

[...]//store sorted results back to array

myList.Destroy;
Run Code Online (Sandbox Code Playgroud)

我的Comparer函数如下所示:

function Comparer(Item1, Item2 : pointer):integer;
begin
  result := myCompare(item1, item2);
end;
Run Code Online (Sandbox Code Playgroud)

根据规格,它应该像这样工作.

我得到一个编译器错误E2250 没有这些参数存在'Sort'的重载版本(确切的措辞不同,我使用非英文版的RAD Studio)

我不知道为什么这不应该是有效的Pascal - 你们中的任何人都有洞察力分享这个吗?

delphi sorting generics tobjectlist delphi-2010

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

选择两列之间的日期

我需要SQL中的查询.
如果我有两列STARTDATEEND_DATE.
我想选择日期介于这两个日期之间的所有行.

例如:startdate = 1/1/2011 AND enddate = 2/2/2011.

sql

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

链接sqlite3.obj会发出不满意的前向声明错误

我使用以下命令从sqlite3.c和BCC 55编译了SQLIte3数据库引擎:

bcc32.exe -jb -O2 -w- -K -c -6 -u- sqlite3.c
Run Code Online (Sandbox Code Playgroud)

生成了正确的sqlite3.obj文件.但是,一旦我尝试在我的Delphi应用程序中链接它,如下所示:

unit unt_SQLite3;

interface

uses
  Windows;

implementation

{$LINK 'sqlite3.obj'}
end.
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

[DCC Error] E2065 Unsatisfied forward or external declaration: '__ftol'
[DCC Error] E2065 Unsatisfied forward or external declaration: '__lldiv'
[DCC Error] E2065 Unsatisfied forward or external declaration: '__llmod'
[DCC Error] E2065 Unsatisfied forward or external declaration: '_localtime'
[DCC Error] E2065 Unsatisfied forward or external declaration: '_strncmp'
[DCC Error] E2065 Unsatisfied forward or external declaration: '_memset'
[DCC Error] E2065 Unsatisfied …
Run Code Online (Sandbox Code Playgroud)

delphi sqlite linker delphi-xe

8
推荐指数
1
解决办法
2351
查看次数

为什么我不能在for循环中使用Int64?

我可以for..do为整数值编写进程..但是我不能为int64值写它.例如:

var
  i:int64;
begin
  for i:=1 to 1000 do 
end; 
Run Code Online (Sandbox Code Playgroud)

编译器拒绝编译它,为什么拒绝?

delphi

8
推荐指数
3
解决办法
1610
查看次数

问号和冒号 - 如果在红宝石中

嗨我有关于铁轨上的红宝石的问题

显然我有这样的声明:

def sort_column
    Product.column_names.include?(params[:sort]) ? params[:sort] : "name"
end
Run Code Online (Sandbox Code Playgroud)

根据我的阅读,据说这种方法基于params [:sort]对列进行排序,如果没有params,产品将按"name"排序.但是,我不明白这个陈述的写法,特别是第二个"?".有人可以向我解释一下吗?

ruby ruby-on-rails ternary-operator

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

IDE生成的USEFORM宏调用改变了它们的顺序

我们有一个C++ Builder XE项目(VCL Forms Application),里面有几十个表单和单元.每当添加,删除或重命名属于项目的文件时,IDE都应该做两件事:

  1. 如果受影响的单元是表单或框架,则在项目源文件(ProjectName.cpp)中添加或更改对USEFORM宏的调用
  2. 添加或更改项目文件(ProjectName.cbproj)中的CppCompile元素

但是,IDE不是仅进行必要的更改,而是对现有的USEFORM和CppCompile记录进行洗牌,即使它们不受更改的影响.如果我添加一个单元(cpp和头文件),即使不需要对项目源进行任何更改,也只需要对cbproj文件进行任何更改,USEFORM都会被洗牌.

我没有看到新订单如何形成的具体模式.如果我编辑或重命名一个单元,大约一半的USEFORMs似乎改变了位置,只改变了一对或没有CppCompile记录.如果在两台不同的机器上对项目副本进行了更改,则大多数更改似乎都相似,但并非全部.这表明重新排序不是随机的.

使用Subversion合并更改时,该行为会导致问题,因为它会强制手动解决更改顺序造成的冲突.

所以问题是:什么可能导致上述行为以及如何摆脱它?

ide c++builder c++builder-xe

8
推荐指数
1
解决办法
876
查看次数

为什么Delphi在不知名的地方插入nop?

以下代码:

while Assigned(p) do begin
  np:= p^.next;
  h:= leaf_hash(p^.data);   <<-- inline routine
  h:= h mod nhashprime;
  p^.next:= nhashtab[h]; 
  nhashtab[h]:= p;
  p:= np;
end; { while }
Run Code Online (Sandbox Code Playgroud)

生成以下程序集:

hlife.pas.605: h:= leaf_hash(p^.data);
00000000005D4602 498B4018         mov rax,[r8+$18]
00000000005D4606 48C1E830         shr rax,$30
00000000005D460A 498B5018         mov rdx,[r8+$18]
00000000005D460E 48C1EA20         shr rdx,$20
00000000005D4612 81E2FFFF0000     and edx,$0000ffff
00000000005D4618 4D8B5818         mov r11,[r8+$18]
00000000005D461C 49C1EB10         shr r11,$10
00000000005D4620 4181E3FFFF0000   and r11d,$0000ffff
00000000005D4627 418B7018         mov esi,[r8+$18]
00000000005D462B 81E6FFFF0000     and esi,$0000ffff
00000000005D4631 488D34F6         lea rsi,[rsi+rsi*8]
00000000005D4635 4403DE           add r11d,esi
00000000005D4638 4F8D1CDB …
Run Code Online (Sandbox Code Playgroud)

delphi assembly delphi-xe2

8
推荐指数
1
解决办法
485
查看次数

在类型声明中= do后键入什么

在mORMot的SynCommons.pas中,有以下代码片段:

type
  ....
  TTimeLog = type Int64;
             ^^^^
Run Code Online (Sandbox Code Playgroud)

第二个type关键字的目的是什么(在前面Int64)?

delphi

8
推荐指数
1
解决办法
185
查看次数