使用网络搜索很难找到Delphi文档.文档通常远离命中列表的顶部.例如,Google搜索delphi setlength会产生以下结果:

第一个指向官方Embarcadero文档的点击位于第8位,列表的底部如上所示.但它是Delphi 2009文档的链接.理想情况下,我想查找最新版本的文档.
有什么区别
TFuncOfIntToString = reference to function(x: Integer): string;
Run Code Online (Sandbox Code Playgroud)
和
TFuncOfIntToString = function(x: Integer): string of object;
Run Code Online (Sandbox Code Playgroud)
我使用的是对象
我正在研究面向Mac OS和Windows的Delphi XE2应用程序.我希望集成到上下文菜单中.对于Windows,这是一项简单的任务.但对于Mac OS,我不知道该怎么做.
我已阅读提供服务文档并在Delphi中尝试了类似的代码,但没有运气.
查看Finder集成试验的简单代码.
App.dpr
program App;
uses
SysUtils,
{$IFDEF MACOS}
AppKit, CocoaTypes, CoreFoundation,
CoreServices, Foundation, Mach, ObjCRuntime,
ObjectiveC, OCMarshal, OpenGL, QuartzCore, Security,
SystemConfiguration,
{$ENDIF}
MessageProvider;
{$IFDEF MACOS}
var
app: NSApplication;
provider: TMessageProvider;
{$ENDIF}
begin
Application.Initialize;
{$IFDEF MACOS}
provider := TMessageProvider.Create();
app := TNSApplication.Alloc();
app.setServicesProvider(provider);
{$ENDIF}
Application.CreateForm(TFormOSVersion, FormOSVersion);
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
MessageProvider.pas
unit MessageProvider;
interface
uses
FMX.Dialogs
{$IFDEF MACOS}
, AppKit, CocoaTypes, CoreFoundation,
CoreServices, Foundation, Mach, ObjCRuntime,
ObjectiveC, OCMarshal, OpenGL, QuartzCore, Security,
SystemConfiguration
{$ENDIF}
;
type
TMessageProvider …Run Code Online (Sandbox Code Playgroud) 我想知道以下形式的初始化:
int array[] = {
v - 1,
array[0] + 1
} ;
Run Code Online (Sandbox Code Playgroud)
在第二个元素的初始化中,使用第一个元素的值,但尚未初始化整个数组.这恰好用g ++编译,但我不确定这是否实际上是可移植的和定义良好的构造?
假设我希望禁用XE8中引入的新集成的Castalia.我该如何以干净的方式做到这一点?我在Castalia菜单上看不到任何允许我通过设置一个选项来禁用它的内容.
人们可能希望禁用Castalia的原因包括:
我在Windows上,但我使用putty shell连接到linux机器,并且想要安装python 2.7.无法弄清楚该怎么做.如何从命令行下载python?
我有一个GUI应用程序,其中包括用于工具栏按钮,菜单标志符号,通知图标等的许多图标.这些图标作为资源链接到应用程序,并且可以使用各种不同的大小.通常,对于工具栏按钮图像,我有16px,24px和32px版本.我的图标是32bpp,具有部分透明度.
该应用程序具有高DPI感知能力,可根据主流字体缩放调整所有可视元素的大小.因此,例如,在100%字体缩放,96dpi时,工具栏图标大小为16px.在125%缩放,120dpi时,工具栏图标大小为20px.我需要能够加载大小为20px的图标而不会产生任何混叠效果.我怎样才能做到这一点?请注意,我想支持Windows 2000及更高版本.
这个计划
{$APPTYPE CONSOLE}
{$TYPEDADDRESS ON}
uses
Winapi.Windows;
procedure Foo(P: PDWORD);
begin
end;
procedure Bar;
var
dw: DWORD;
begin
Foo(@dw);
end;
begin
end.
Run Code Online (Sandbox Code Playgroud)
在XE3中编译,但在XE4,XE5,XE6和XE7中不编译.错误发生在
Foo(@dw);
Run Code Online (Sandbox Code Playgroud)
[dcc32 Error] E2010 Incompatible types: 'PDWORD' and 'Pointer'
这感觉很奇怪.因此,经过一番挖掘,似乎问题归结为PDWORD.人们可能自然会认为它会是:
PDWORD = ^DWORD;
Run Code Online (Sandbox Code Playgroud)
事实上,XE3就属于这种情况.在以后的版本中,我们发现:
// Note: Not ^DWORD yet
PDWORD = ^CppULongInt;
Run Code Online (Sandbox Code Playgroud)
奇.那么,是什么CppULongInt?
CppULongInt = type LongWord;
{$EXTERNALSYM CppULongInt 'unsigned long'}
{$OBJTYPENAME CppULongInt 'Bul' 'Gm'}
Run Code Online (Sandbox Code Playgroud)
然后看着DWORD我们发现的声明:
//NOTE: DWORD should really be CppULongInt
DWORD = LongWord;
Run Code Online (Sandbox Code Playgroud)
所以,CppULongInt并且DWORD是不同的类型.因此编译错误.
这里发生了什么?目的是 …
我有三个collection.deques,我需要做的是迭代它们并执行相同的操作:
for obj in deque1:
some_action(obj)
for obj in deque2:
some_action(obj)
for obj in deque3:
some_action(obj)
Run Code Online (Sandbox Code Playgroud)
我正在寻找一些功能XXX,理想情况下我可以写:
for obj in XXX(deque1, deque2, deque3):
some_action(obj)
Run Code Online (Sandbox Code Playgroud)
这里重要的是XXX必须足够高效 - 没有复制或静默使用range()等.我期望在内置函数中找到它,但到目前为止我没有发现任何类似的东西.
Python中是否已有这样的东西,或者我必须自己编写一个函数?
考虑这个程序:
{$APPTYPE CONSOLE}
begin
Writeln('????????Z??????????????????????????????????????');
end.
Run Code Online (Sandbox Code Playgroud)
我的控制台上使用Consolas字体的输出是:
????????Z??????????????????????????????????????
Windows控制台非常能够支持Unicode,如此程序所示:
{$APPTYPE CONSOLE}
uses
Winapi.Windows;
const
Text = '????????Z??????????????????????????????????????';
var
NumWritten: DWORD;
begin
WriteConsole(GetStdHandle(STD_OUTPUT_HANDLE), PChar(Text), Length(Text), NumWritten, nil);
end.
Run Code Online (Sandbox Code Playgroud)
输出为:
????????Z??????????????????????????????????????
可以Writeln说服尊重Unicode,还是它固有的残缺?
delphi ×7
python ×2
windows ×2
c++ ×1
command-line ×1
delphi-xe2 ×1
delphi-xe4 ×1
delphi-xe7 ×1
delphi-xe8 ×1
download ×1
finder ×1
iterator ×1
linux ×1
macos ×1
winapi ×1