小编Nic*_*ski的帖子

你如何在Haskell进行就地快速排序

有人可以提供就地快速排序haskell功能吗?即它返回一个新的排序列表,但输入列表被复制到一个可变数组或其他东西.

我想看看如何做到这一点,因为我有一个性能关键程序,我需要模拟比赛和计数得分.如果我为此使用不可变数据结构,则每个种族将采用O(log(numRaces)+ numRunners)时间,而如果我使用可变数组等,则每个种族将采用O(log(numRaces))时间.

哦顺便说一句我实际上并不需要做快速排序,我只是想要一个例子来看看如何有效地使用可变数组

haskell

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

如何获取不是主要表单的表单的任务栏按钮?

如何让表格出现在Delphi的任务栏上?例如,在Firefox中,当您在新窗口中打开页面时,它会在任务栏上创建另一个窗口,而不会创建新进程.目前我的Delphi应用程序在单击按钮时打开一个新表单,但任务栏上仍然只有一个表单,因此您不能在主表单和按钮所在的表单之间使用alt-tab.点击.如何更改它以便新表单显示新的任务栏按钮?我当前的代码如下所示:

procedure Form1ButtonClick(Sender: TObject);
begin
    Form2.Show;
end;
Run Code Online (Sandbox Code Playgroud)

我一直在搞乱CreateWindowEx,但理想情况下我想找到比直接使用Windows API更简单的解决方案.

forms windows delphi

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

如何从THtmlViewer对象复制和粘贴?

目前我有以下黑客攻击:

procedure TForm1.HTMLViewer1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
begin
    if (Key = Word('C')) and (Shift = [ssCtrl]) then
        HTMLViewer1.CopyToClipboard;
end;
Run Code Online (Sandbox Code Playgroud)

是否有一种更明智/可维护的方式来启用htmlviewer的复制?我希望有一个我可以设置的属性,或者其他东西,因为必须做上述操作似乎很愚蠢.TCustomEdit的后代默认会复制,粘贴和选择所有,但htmlviewer由于某种原因似乎没有以这种方式实现.

另一个问题是上述方法也没有考虑右键单击并选择"复制"

编辑:最后,我选择用适当的上下文菜单替换上面的代码,根据本教程:http://delphi.about.com/od/tmemotrichedit/a/richedit-popup.htm

delphi contextmenu clipboard-interaction

12
推荐指数
1
解决办法
1241
查看次数

Delphi本地功能

我有一个包含在delphi单元中的函数库,我们将其称为UtilitiesU.其中一些函数只是辅助函数,仅在UtilitiesU中使用.我想将这些功能的范围限制在UtilitiesU.这些是我所知道的方法:

  1. 从接口中删除声明并在实现中将其依赖于其依赖项 - 函数定义的凌乱,反直觉的顺序,如果存在例如相互依赖,则不总是可能的
  2. 将所有函数放入一个静态类(ala Java)中,并根据需要将它们公开或私有 - 太多样板,错综复杂
  3. 声明辅助函数是使用它们的函数的局部函数 - 与第1点相同的问题

理想情况下,我想用C/C++方式来做 - 也就是说,在实现部分中将它们声明为静态.这可能吗?有没有更好的办法?

delphi scope function

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