小编Rob*_*edy的帖子

为什么使用运行时包构建会使EXE文件更小?

我有一个关于Delphi中使用或不使用运行时包(Project-> Option-> Packages)构建的选项的查询.
当我选中"使用运行时包构建"框时,与我取消选中该框(3,521KB)相比,可执行文件大小似乎更小(389KB).为什么会这样?

我在为它构建安装盘时遇到了很多麻烦,无法弄清楚安装中应该包含哪些文件.我想知道这可能与它有什么关系,但我已经尝试了两种选择.

delphi installation packages

9
推荐指数
2
解决办法
6782
查看次数

如何更改启用主题的控件的字体颜色?

是的,这也是这个问题:

如何在启用主题的应用程序上使用Delphi7-> Delphi2007更改TCheckBox(或任何已处理控件)的字体颜色?

在网上和本网站上看了很多,我找到了4种答案:

  1. 和大多数人(甚至来自QC):你不能,它的设计就像微软那样.
  2. 创建一个组件,让您可以按需绘制它.
  3. 购买你想要的昂贵的组件集.
  4. 不要使用主题.

好的,但我仍然不满意.

为用户提供有关他在表单上拥有的财产/数据状态的彩色反馈,对我来说似乎是合法的.

然后我刚刚安装了MSVC#2008 Express版本,而且出乎意料的是,他们可以改变字体的颜色(复选框的属性ForeColor)那么什么?

它似乎并不是"微软那样设计的".那么现在问题又来了:

如何在启用主题的应用程序上使用Delphi 7到Delphi 2007更改TCheckBox(或任何已处理控件)的字体颜色?

delphi themes

9
推荐指数
1
解决办法
9673
查看次数

为什么Perl的"排序"不按数字顺序放置这些哈希键?

#!/usr/bin/perl
use strict;
use warnings;

my %hash;
foreach ( 1 .. 10 ) {
    $hash{$_} = $_;
}
foreach ( sort(keys %hash) ) {
    print $_ . ":  " . "$hash{$_}" . "\n" ;
}
Run Code Online (Sandbox Code Playgroud)

当我执行上面的代码时,结果如下:

1:  1
10:  10
2:  2
3:  3
4:  4
5:  5
6:  6
7:  7
8:  8
9:  9

我希望"10:10"成为最后一个印刷品.我只需要有人解释为什么Perl会在这种情况下给我一个惊喜.

sorting perl

9
推荐指数
1
解决办法
7356
查看次数

抛出异常会发生什么?

我有一些技术问题.在这个功能:

string report() const {
    if(list.begin() == list.end()){
        throw "not good";
    }
    //do something
}
Run Code Online (Sandbox Code Playgroud)

如果我抛出异常程序正在发生什么?我的功能会终止还是会进一步运行?如果它终止,它将返回什么价值?

c++ exception

9
推荐指数
2
解决办法
8487
查看次数

有MAKELONGLONG功能吗?

我需要组合两个32位值来创建64位值.我正在寻找类似于MAKEWORD和的东西MAKELONG.我可以轻松定义自己的宏或函数,但如果API已经提供了一个,我宁愿使用它.

windows winapi

9
推荐指数
1
解决办法
1926
查看次数

接口对Delphi的执行速度有什么影响?

如果我用我的Delphi程序中的所有对象引用替换接口引用,并使用从TInterfacedObject继承的对象,生成的应用程序将以与以前相同的速度运行吗?或者引用计数是否在运行时添加了重要的执行开销?

delphi oop performance interface

9
推荐指数
2
解决办法
793
查看次数

当一个类声明看起来有两个名字时,这意味着什么?

我试图理解一些具有以下类语法的C++代码:

class Q_MONKEY_EXPORT BasePlugin : public QObject
{
    // some code comes here
};
Run Code Online (Sandbox Code Playgroud)

我无法理解语法class Q_MONKEY_EXPORT BasePlugin.对我来说,看起来这个班级有两个名字.这种语法究竟在C++中意味着什么?

c++

9
推荐指数
2
解决办法
2400
查看次数

如何为整个整数数组赋值?

我知道我可以这样做:

const
  arrayOfIntegers : Array[1..15] of Integer = (3,2,8,10,1,6,2,13,13,3,13,13,13,3,45);
Run Code Online (Sandbox Code Playgroud)

但是我该如何做呢?

var
  arrayOfIntegers : Array[1..15] of Integer;
begin
  arrayOfIntegers := (3,2,8,10,1,6,2,13,13,3,13,13,13,3,45);
end;
Run Code Online (Sandbox Code Playgroud)

一旦我尝试编译上面的代码,我得到E2029')'预期,但','发现

delphi

9
推荐指数
2
解决办法
9381
查看次数

"var"对字段声明有什么区别?

以下声明S和之间的区别是什么F

type
  TMyClass = class(TObject)
  private
    S: String;
  private var
    F: String;
  end;
Run Code Online (Sandbox Code Playgroud)

我问的原因是因为我可以使用S相同的方式F(不添加var关键字).

他们的待遇不同吗?

delphi syntax

9
推荐指数
2
解决办法
299
查看次数

当一个对象同时提供`operator!`和`operator bool`时,它在表达式`!obj`中使用?

我遇到了一个我无法自己回答的问题.此外,我没有在谷歌和这里找到答案.比如,我想在if子句中"检查对象的有效性",如下所示:

MyClass myObject;

// [some code, if any]

if (!myObject)
{
    // [do something]
}
Run Code Online (Sandbox Code Playgroud)

我们MyClass这样定义:

class MyClass
{
public:
    MyClass() { };
    virtual ~MyClass() { };
    bool operator!()
    {
        return !myBool;
    };
    operator bool()
    {
        return myBool;
    };
private:
    bool myBool = 0;
};
Run Code Online (Sandbox Code Playgroud)

我现在的问题是:在这个if子句中实际使用了哪一个重载运算符?无论哪种方式,结果显然都是一样的.

c++ overloading operator-keyword

9
推荐指数
1
解决办法
131
查看次数