小编Dan*_*her的帖子

QTableView - 用户通过点击选择行时发送的信号是什么?

当用户QTableView通过鼠标选择行(单选模型)时是否有信号发出?

qt qtableview

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

包(BPL)自动命名后缀

我为Delphi编写了很多组件和库,其中大部分都需要使用BPL Packaging才能将它们安装到IDE中.

这很简单并且运行良好,直到你想要维护一组Package Project Files(在一个Project Group中),但是也想为不同的Delphi版本编译和分发那些相同的包.

到目前为止,我一直在为每个版本的Delphi创建一个不同的Package Project,并明确地将Delphi版本标识符定义为后缀(例如Kinect_XE.bplKinect_XE2.bpl).

我知道,在包项目的项目选项中,在描述下,有字段LIB前缀和(更重要的是我的需要)LIB后缀.

我进一步意识到,如果我在LIB后缀中放置一个值,它将被附加到已编译的BPL文件名的末尾.

然而,我的问题是,首先是否可以让IDE自动使用IDE/RTL版本号填充LIB后缀字段,如果是,那么......怎么样?

我相当肯定这是可能的,因为看起来vcl120.bpl(及其各自版本的Delphi的对应物)可以仅使用vcl引用(作为要求)您自己的包,而不必键入完整的vcl120.事实上,这是我希望实现的相同行为......我的包可以在内部引用彼此(作为必要),而不必提供特定于版本的引用来容纳后缀.

同样重要的是,解决这个问题将使我能够在一个项目组中维护一组项目文件(除了XE2之外,由于平台的添加,其项目文件与以前版本的Delphi不一定表现得很好).

我怀疑我可能需要在LIB后缀字段中输入类似$(VER)(或类似的东西)的值,但这似乎不起作用,我已经搜索谷歌寻找正确的解决方案.

希望你能帮忙!

更新1

我现在正在编写一个IDE插件,用于(至少)Delphi 2007到XE2,它为DLL和BPL项目提供了一个名为AutoSuffix的新选项.当切换为On时,任何安装了AutoSuffix插件的IDE 都会立即将正确的IDE版本后缀应用于项目.

AutoSuffix插件将在未来24小时内提供(免费)适合所有人,这个问题相应地更新.

更新2

好的...... Delphi 2007很痛苦!到目前为止,我已经将AutoSuffix与2009年的XE2合作,但2007年需要更多时间(耐心赞赏).

更新3

似乎Embarcadero听到了我们对版本之间简化包装统一的集体呼声.

Mark将推动这一过程,看看未来版本的Delphi是否可以容纳{$ LIBSUFFIX AUTO}功能.我希望很快能收到回复是否会出现这种情况.如果是这样,它肯定会影响AutoSuffix在XE2和旧版本上的工作方式(目前它不提供简单的AUTO开关......它有自己的方法).

我现在希望EMB能够认真对待这个请求,将其作为一个不可或缺的特征提供给它,这样就可以在现有版本上使用AutoSuffix来统一所有版本的流程!

delphi bpl package

16
推荐指数
1
解决办法
2427
查看次数

"通过引用传递"究竟是什么意思?

谁有权决定?

编辑:显然我没有成功地完善我的问题.
不是在问Java的论证是如何传递的.我知道看起来像持有对象的变量实际上是一个包含对象引用的变量,并且该引用是按值传递的.这里有很多很好的解释(在链接的线程和其他线程中)和其他地方.

问题是关于术语传递的技术含义.(结束编辑)

我不确定这是否是SO的正确问题,如果没有道歉,但我不知道更好的地方.在这里的其他问题中已经说了很多,例如Java是"传递参考"还是"传递价值"?通过引用或通过值传递?,但我没有找到该术语含义的权威答案.

我认为"通过引用传递"意味着"将引用(通常是指针)传递给对象",因此被调用者可以修改调用者看到的对象,而"按值传递"意味着复制对象,并让被调用者玩得开心(显而易见的问题:如果对象包含引用,深层复制或浅层).
唱FW变成了很多 地方 说: "按引用传递"的意思只是说,这里有一些说法,这意味着更多的,但仍然定义读

一种ParameterPassing模式,其中将实际参数的引用(或者如果你想在政治上不正确,指针)传递给形式参数; 当被调用者需要形式参数时,它取消引用指针以获取它.

我没有发现许多地方给出了更强的术语定义,在这个页面上,我发现"形式参数的左值设置为实际参数的左值".并且,如果我理解正确,这里使用相同的定义("形式参数仅作为实际参数的别名.")

事实上,我发现使用更强定义的唯一地方是反对这样一种观点,即在Java中,对象是通过引用传递的(这可能是由于我缺乏google-fu).

所以,如果我把事情弄清楚,那就是通过参考传递

class Thing { ... }
void byReference(Thing object){ ... }
Thing something;
byReference(something);
Run Code Online (Sandbox Code Playgroud)

根据第一个定义大致对应(在C中)

struct RawThing { ... };
typedef RawThing *Thing;
void byReference(Thing object){
    // do something
}
// ...
struct RawThing whatever = blah();
Thing something = &whatever;
byReference(something); // pass whatever by reference …
Run Code Online (Sandbox Code Playgroud)

java parameters terminology pass-by-reference

15
推荐指数
3
解决办法
7793
查看次数

如何在Haskell中使用过滤功能?

我有一个haskell程序,根据输入n列出[1..n]中的所有整数.我想根据条件过滤某些数字并显示为列表.我在哪里以及如何使用过滤功能/条件?

根据haskell文档:

filter :: (a -> Bool) -> [a] -> [a]
Run Code Online (Sandbox Code Playgroud)

filter,应用于谓词和列表,返回满足谓词的那些元素的列表; 即

filter p xs = [ x | x <- xs, p x]
Run Code Online (Sandbox Code Playgroud)

haskell function

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

Erlang"单一赋值"与Haskell"不可变值"不同吗?

在"编程Erlang"一书中,它说该语言使用"单一赋值"变量.在关于函数式编程语言的其他文章中,我总是读到"不可变值".

措辞"单一分配"是否意味着与"不可变价值"不同的东西?

erlang haskell functional-programming

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

oracle如果行不存在则插入

insert ignore into table1 
select 'value1',value2 
from table2 
where table2.type = 'ok'
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到错误"缺少INTO关键字".

有任何想法吗 ?

sql oracle insert

14
推荐指数
3
解决办法
5万
查看次数

我可以在GHCi中添加实例声明吗?

我正在搞乱,HashMap并试图用Data.Bson.ObjectId一把钥匙.当然,我发现Hashable该结构没有实例.没关系,因为写一个是微不足道的.1

instance Hashable ObjectId where hash (Oid x y) = hash (x,y)
Run Code Online (Sandbox Code Playgroud)

我将该行键入GHCi并被告知"输入`实例'上的解析错误".这实际上是有意义的,因为GHCi提示操作就好像在IO monad中将行键入到do块中,并且在此上下文中无法定义实例.

那么我的问题是,有没有办法在GHCi中定义一个新实例?


1为什么库不提供此实例是另一回事.我相信答案是限制依赖性,除了bson包已经依赖于太阳下的一切.

haskell typeclass ghc ghci

14
推荐指数
1
解决办法
1160
查看次数

我想在Perl中对数组进行排序,但结果没有排序

我有一个我要排序的数组数组.数组A的每个元素是一个包含3个元素的数组.数组A看起来像:

my @A = ([2,3,1], [1,2,3], [1,0,2], [3,1,2], [2,2,4]);
Run Code Online (Sandbox Code Playgroud)

我想按升序排序A. 比较2个元素时,使用第一个数字.如果存在平局,则使用第二个数字,然后使用第三个数字.

这是我的代码.我使用函数'cmpfunc'来比较2个元素.

sub cmpfunc {
    return ($a->[0] <=> $b->[0]) or 
           ($a->[1] <=> $b->[1]) or
           ($a->[2] <=> $b->[2]);
}
my @B = sort cmpfunc @A;
print "Result:\n";
for my $element (@B) {
    print join(",", @{$element}) . "\n";
}
Run Code Online (Sandbox Code Playgroud)

结果:

1,2,3
1,0,2
2,3,1
2,2,4
3,1,2
Run Code Online (Sandbox Code Playgroud)

结果有些分类,但不正确.我的期望是:

1,0,2
1,2,3
2,2,4
2,3,1
3,1,2
Run Code Online (Sandbox Code Playgroud)

我的比较函数有错误吗?奇怪的是,当我将比较代码放入块中时,结果被正确排序.

my @C = sort { ($a->[0] <=> $b->[0]) or 
               ($a->[1] <=> $b->[1]) or
               ($a->[2] <=> $b->[2]) } @A;
Run Code Online (Sandbox Code Playgroud)

sorting perl

14
推荐指数
4
解决办法
2986
查看次数

只允许英文字符和数字输入文字

现场演示:http://jsfiddle.net/thisizmonster/DveuB/

如何更改此选项,以便输入仅在键入时允许字符AZ,az,0-9,而不使用正则表达式?

javascript validation jquery input alphanumeric

12
推荐指数
3
解决办法
5万
查看次数

在Haskell中检测图形的周期(可能是有向的或无向的)

我开始以势在必行的方式解决这个问题并且它起作用(DFS使用传统的三种着色技术).但是,我需要三倍的时间来弄清楚如何做Haskell而我失败了!假设我将图表表示为具有其邻接节点的节点的列表(或映射).

type Node = Int
type Graph = [(Node, [Node])]
Run Code Online (Sandbox Code Playgroud)

注意,上述表示可以是指向的或不指向的.在进行探测以检测后沿边缘时,我还将看到的集合和完成集合作为参数传递(因为在功能上没有副作用).但是,我不能在Haskell中做到这一点!我知道可能会使用State monad,但那件事并没有在我的脑海中完成.我很想知道怎么能有人指导我如何以"美丽的"Haskell风格做到这一点?

haskell

12
推荐指数
3
解决办法
2702
查看次数