我的32位Delphi 2010应用程序使用$LINK编译器指令链接到许多C对象文件.在针对64位时,我可以在Delphi XE2中执行此操作吗?
我目前正在使用bcc32版本5.5编译,但我不介意我使用哪个编译器,如果它证明Embarcadero C编译器还没有输出64位对象.
使用DXE2,我编写了一个表单生成器,可以创建.pas和.dfm文件.我正在编写一个例程,允许我修改dfm中的不同属性,例如Font.Height和TabOrder.
当我在记事本中打开生成的文件时,一切看起来都与我期望的完全一样.当我在Delphi中打开它时,属性会发生变化!令人沮丧的是我使用最初在Delphi IDE中设计的表单作为我的模板.我不明白为什么Delphi不尊重我的简单改变...
例如,原始Font.Height是-11.我在dfm中读到,将其更改为-17,然后保存.在记事本中,它显示-17.当我在Delphi中打开它时,它显示为-21!
任何想法/提示/建议将不胜感激!
我正在创建一个Delphi表单,并希望在运行时为其指定背景颜色.这段代码:
Form1.Color := clSkyBlue;
Run Code Online (Sandbox Code Playgroud)
效果很好.我的问题是我已将颜色名称作为字符串存储在表中.因此,当我从表中获取颜色名称并将其分配给时Form1.Color,上面的语句变为:
var
ColorName: string;
....
Form1.Color := ColorName;
Run Code Online (Sandbox Code Playgroud)
这导致编译时错误.
如何将字符串转换为TColor值?
将double值转换为其字节表示的简单方法是什么?我尝试使用如下指针:
var
double_v:double;
address:^double;
....
double_v:=100;
address:=@double_v;
Run Code Online (Sandbox Code Playgroud)
但我的每一个概念:如何从地址读取8个字节,以"AV"结束.
这个问题的灵感来自于我尝试回答另一个问题:将十进制/整数转换为二进制 - 它是如何以及为什么以它的方式工作?
我能找到的按位移位运算符的唯一文档说:
操作x shl y和x shr y将x的值向左或向右移位y位,其中(如果x是无符号整数)等于x乘以或除以2 ^ y; 结果与x的类型相同.例如,如果N存储值01101(十进制13),则N shl 1返回11010(十进制26).请注意,y的值以x的类型的大小为基础进行解释.因此,例如,如果x是整数,则x shl 40被解释为x sh18,因为整数是32位而40 mod 32是8.
考虑这个程序:
{$APPTYPE CONSOLE}
program BitwiseShift;
var
u8: Byte;
u16: Word;
u32: LongWord;
u64: UInt64;
begin
u8 := $ff;
Writeln((u8 shl 7) shr 7);
// expects: 1 actual: 255
u16 := $ffff;
Writeln((u16 shl 15) shr 15);
// expects: 1 actual: 65535
u32 := $ffffffff;
Writeln((u32 shl 31) shr 31);
// expects: 1 actual: 1
u64 := $ffffffffffffffff;
Writeln((u64 …Run Code Online (Sandbox Code Playgroud) 我正在使用Delphi 2007.如何在BitBtn组件上放置GIF/PNG图像?(最好支持alpha透明度)
我在某些语言中知道以下内容:
a += b
Run Code Online (Sandbox Code Playgroud)
比以下更有效:
a = a + b
Run Code Online (Sandbox Code Playgroud)
因为它不需要创建临时变量.这是C的情况吗?使用+ =更高效(因此也是-= *=等)
例如
#include<stdio.h>
int foo = 100;
int bar()
{
int foo;
/* local foo = global foo, how to implemented? */
return 0;
}
int main()
{
int result = bar();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为在功能栏中,直接调用foo将获得全局foo.我怎么能引用当地的foo?我知道在C++中,有这个指针.但是,C有类似的东西吗?
非常感谢!
所以我看到这个问题已经被提出,但答案有点模糊,无益.好的,我只需要使用"&^〜!+ | >> <<"来实现ac表达式
表达式需要类似:a?b:c
所以,从我能够讲述的,表达式需要看起来像:
return (a & b) | (~a & c)
当a = 0时,这是有效的,因为用b表示它将给出零,然后或表达式将返回右侧,(~a & c)这是有效的,因为~0给出了所有1,并且所有1的和c都返回c.
但是,当a> 0时,这不起作用.有人可以尝试解释为什么会这样,或者如何解决它?
VCL似乎提供了两种隐藏表单设计者控件的机制:TControlState.csDesignerHide和TControlStyle.csNoDesignVisible.
就IDE而言,它们之间有什么区别?你应该在什么时候使用?