这是正常的吗?
for a := 1 to 10 do
x.test;
x.test;
x.test;
x.test;
function test: string;
begin
{$IFDEF DEBUG} DebugMessage('result check = '+Result,3); {$ENDIF}
result := result + 'a';
end;
10:39:59: result check =
10:39:59: result check = a
10:39:59: result check = aa
10:39:59: result check = aaa
10:39:59: result check = aaaa
10:39:59: result check = aaaaa
10:39:59: result check = aaaaaa
10:39:59: result check = aaaaaaa
10:39:59: result check = aaaaaaaa
10:39:59: result check = aaaaaaaaa
10:39:59: result …Run Code Online (Sandbox Code Playgroud) VCL风格的另一个奇怪的故障:
更改表单的图标仅更新其任务栏按钮,除非您使用RecreateWnd,否则标题中的图标不会更新.(使用VCL样式时)
ImageList3.GetIcon(0,Form1.Icon);
Run Code Online (Sandbox Code Playgroud)
有没有办法解决它而不必使用RecreateWnd?(实际上可以创建其他问题)
使用XE2 VCL样式,我想禁用TLabel(或属性sfTextLabelNormal)的外观
我已经尝试过其他问题的所有解决方案,比如使用Engine.UnRegisterStyleHook,但它没有效果.
是否有任何Pos()版本的代码在64位上比当前的32位快?
据我所知,Delphi中的32位版本(经过XE5测试)多年前采用了FastCode汇编程序版本,但对于64位版本,它使用的是PurePascal版本,速度大约慢5到10倍.
一些测试,长循环中的相同过程:
32位:65..90ms
64位:280..300ms
如果有可能,有人可以向我解释,或者我完全不了解这个Delphi功能.
假设我有一个类,我创建了一些类,然后将它们添加到ObjectList中.通常我会这样做:
Type TMyClass = class(TObject)
stuff: string;
..
end;
Var things: TObjectList;
things := TObjectList.Create;
things.Add(TMyClass.Create);
// now I want to access stuff, so I need to typecast the class
TMyClass(things[0]).stuff..
Run Code Online (Sandbox Code Playgroud)
所以现在我的问题是,是否有可能以我可以做的方式声明列表.. thing [0] .stuff并且仍然可以访问常见的TObjectList功能,如.sort .indexof等.?(没有为此创建一个特殊的类来模拟objectlist)
如何在Windows10中获取正确的屏幕尺寸以截取屏幕截图?它似乎得到不正确的值(可能是DPI问题?)
即
// screenshot
b := TBitmap.Create;
DC := GetDC(GetDesktopWindow);
try
b.Width := GetDeviceCaps (DC, HORZRES) ;
b.Height := GetDeviceCaps (DC, VERTRES) ;
BitBlt(b.Canvas.Handle, 0, 0, b.Width, b.Height, DC, 0, 0, SRCCOPY) ;
finally
ReleaseDC (GetDesktopWindow, DC) ;
end;
Run Code Online (Sandbox Code Playgroud)
在4K屏幕上只会捕获左上角的一小部分.
我在两台机器上安装了Delphi 10 Seattle.我两个都有同样的问题.
当我输入一个函数/ proc并键入时(,用于在先前版本中弹出的提示显示函数参数以及您所处的步骤,但这不再有效.它被删除了吗?
TFileOpenDialog的预览窗格设置似乎存在问题,当选择某些图像时应用程序崩溃.有没有解决这个问题?
演示来源:
procedure TForm1.Button1Click(Sender: TObject);
begin
FileOpenDialog1.Execute;
end;
Run Code Online (Sandbox Code Playgroud)
object FileOpenDialog1: TFileOpenDialog
FavoriteLinks = <>
FileTypes = <>
Options = [fdoForcePreviewPaneOn]
Left = 200
Top = 32
end
Run Code Online (Sandbox Code Playgroud)
编辑:它似乎只发生在Windows10(AN.更新)中,在Win7中正常工作.一些调试:
callstack crc : $6ac33669, $66c06792, $66c06792
exception number : 1
exception class : EInvalidOp
exception message : Invalid floating point operation.
main thread ($ae0):
6ac33669 +000 PhotoMetadataHandler.dll
71f6447f +09f PROPSYS.dll PSCreateDelayedMultiplexPropertyStore
773ef71a +00a combase.dll PropVariantClear
74d317c2 +082 KERNELBASE.dll QISearch
71f4f677 +097 PROPSYS.dll #424
71f4f829 +249 PROPSYS.dll #424
6c5f1bba +11a DUI70.dll ?_PreSourceChange@Element@DirectUI@@AAEJPBUPropertyInfo@2@HPAVValue@2@1@Z …Run Code Online (Sandbox Code Playgroud) 我怎样才能转换像这样的路径
\设备\ HarddiskVolume3\Windows下
进入相应的虚拟路径?(比如c:\ Windows在这种情况下)
如何使用 Graphics32 绘制消除锯齿的圆角矩形?
我设法在 bitmap32 画布上用 TPolygon 制作了一个普通矩形,但我找不到任何绘制圆角的参考。会欣赏一些代码。
delphi ×10
delphi-xe2 ×2
vcl ×2
64-bit ×1
antialiasing ×1
function ×1
generics ×1
graphics32 ×1
path ×1
screenshot ×1
search ×1
skinning ×1
stack ×1
string ×1
styles ×1
tlist ×1
vcl-styles ×1
virtual ×1