小编Dav*_*nan的帖子

我如何搜索Delphi文档?

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

在此输入图像描述

第一个指向官方Embarcadero文档的点击位于第8位,列表的底部如上所示.但它是Delphi 2009文档的链接.理想情况下,我想查找最新版本的文档.

delphi

34
推荐指数
1
解决办法
4562
查看次数

对象和引用有什么区别?

有什么区别

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)

我使用的是对象

delphi

33
推荐指数
2
解决办法
5581
查看次数

如何在Delphi XE2中将菜单项添加到Mac OS Finder

我正在研究面向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)

delphi macos finder delphi-xe2

31
推荐指数
1
解决办法
1229
查看次数

(C/C++)数组初始化可以引用自身吗?

我想知道以下形式的初始化:

int  array[] = {
v - 1,
array[0] + 1
} ;
Run Code Online (Sandbox Code Playgroud)

在第二个元素的初始化中,使用第一个元素的值,但尚未初始化整个数组.这恰好用g ++编译,但我不确定这是否实际上是可移植的和定义良好的构造?

c++

30
推荐指数
2
解决办法
918
查看次数

如何在XE8中禁用Castalia?

假设我希望禁用XE8中引入的新集成的Castalia.我该如何以干净的方式做到这一点?我在Castalia菜单上看不到任何允许我通过设置一个选项来禁用它的内容.

人们可能希望禁用Castalia的原因包括:

delphi delphi-xe8

29
推荐指数
1
解决办法
8383
查看次数

如何从命令行下载python?

我在Windows上,但我使用putty shell连接到linux机器,并且想要安装python 2.7.无法弄清楚该怎么做.如何从命令行下载python?

python linux command-line download

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

如何在不遭受别名的情况下从资源加载图标?

我有一个GUI应用程序,其中包括用于工具栏按钮,菜单标志符号,通知图标等的许多图标.这些图标作为资源链接到应用程序,并且可以使用各种不同的大小.通常,对于工具栏按钮图像,我有16px,24px和32px版本.我的图标是32bpp,具有部分透明度.

该应用程序具有高DPI感知能力,可根据主流字体缩放调整所有可视元素的大小.因此,例如,在100%字体缩放,96dpi时,工具栏图标大小为16px.在125%缩放,120dpi时,工具栏图标大小为20px.我需要能够加载大小为20px的图标而不会产生任何混叠效果.我怎样才能做到这一点?请注意,我想支持Windows 2000及更高版本.

windows delphi winapi

28
推荐指数
1
解决办法
3985
查看次数

为什么PDWord不是^ DWORD?

这个计划

{$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是不同的类型.因此编译错误.

这里发生了什么?目的是 …

delphi delphi-xe4

26
推荐指数
1
解决办法
3087
查看次数

在Python中连续迭代两个或更多容器的优雅而快速的方法?

我有三个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中是否已有这样的东西,或者我必须自己编写一个函数?

python iterator

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

Writeln能否支持Unicode?

考虑这个程序:

{$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,还是它固有的残缺?

windows delphi delphi-xe7

25
推荐指数
3
解决办法
3098
查看次数