我已经构建了一个自定义控件,我正在尝试将输入发送到.它将接受鼠标输入并正确报告MouseDown,MouseMove和MouseUp,但无论出于何种原因,它都不接受键盘输入.当我点击它时,它没有得到焦点,我按下的任何键都被任何具有焦点的控件解释.
这可能非常简单.我想看的第一个地方是在ControlStyle属性中,但我在帮助文件中看到的关于键盘输入的唯一内容是csNoStdEvents禁用它,而我的控件没有.那么我需要做些什么才能让我的控件能够获得输入焦点?
在 Delphi 7 中,当我运行多个 Find In Files 搜索时,每个搜索结果都会生成一个单独的选项卡。我们已经升级到 Delphi 2010,现在当我在每次触发时运行多个 Find In Files 搜索时,它会替换该选项卡,而不是使用连续搜索的结果创建一个新选项卡。有没有办法恢复旧功能,某个地方的设置?
谢谢,
布赖恩
这可能是一个"不",但有什么方法可以使用Delphi的RTTI(旧学校或2010扩展RTTI)传入一个包含类型名称的字符串,特别是枚举的名称类型,并让它给我这种类型的PTypeInfo?我查看了RTTI.pas和TypInfo.pas,我没有看到任何可以做到这一点的函数,但我可能错过了一些东西.
我在找什么:
var
info: PTypeInfo;
begin
info := GetTypeInfoFromName('TComponentStyle');
end;
Run Code Online (Sandbox Code Playgroud)
或类似的东西.事实是,枚举类型的名称将被传入; 在编译时不知道.
我最近在使用我的一个Delphi 2010项目时遇到了一些麻烦.有时候,当我打开一个表单作为模态对话框时,应用程序会停止显示在ALT-TAB列表中,直到我关闭对话框.它仍在任务栏中,但不在ALT-TAB中,这意味着我不能在不使用鼠标的情况下切换到它.
在Windows 7,64位下运行.谁看过这个吗?知道是什么导致它以及如何解决它?
我正在尝试制作一个"空白"背景,将图像放在上面.通过在表单上放置TImage并执行以下操作来创建剖面线并不困难:
image1.Canvas.brush.Style := bsDiagCross;
image1.canvas.brush.color := clWhatever;
image1.canvas.FillRect(image1.clientrect);
Run Code Online (Sandbox Code Playgroud)
这是有效的,我在clW中得到一个交叉阴影图案,无论是在黑色背景下.但这就是问题所在.它总是黑色的,我找不到任何方法来指定背景颜色,以防我想要黑色以外的东西.
有谁知道如何做到这一点?
有没有办法设置一个回调,当程序中的任何线程终止时将调用该回调?我需要的唯一信息是垂死线程的ThreadID.(不是一些关于.NET的类似问题的重复;我需要一种方法在本机代码中执行此操作.)
一般来说,HTML 布局是基于流的。每个元素都定位在它之前的元素之后,要么在它的右边,要么在它的下面。当然,有很多例外情况,您可以通过使用样式来获得,但即便如此,如果您更改某些东西的顺序,大多数东西也会围绕它“流动”并为它腾出空间。
但偶尔我会看到行为非常不同的东西,例如页面出现的“对话框”漂浮在屏幕中间,不受它们作为父级的 div 尺寸的限制并且不会移位他们周围的其他布局元素。
我试图找出一种方法来做一些类似但不完全相同的事情。我有一个用来显示网格的表格(是的,实际上正确使用表格),我想在其中一个网格单元格的顶部放置一个图像。我不能把它放在单元格中,因为它比单元格大,我不想拉伸我的网格,但我希望它始终显示在相对于网格的相同位置,即使浏览器窗口滚动或调整大小。
我认为必须有某种方法可以做到这一点。如果我在其中一个<TD>单元格上放置一个 ID 或类,我如何创建一个<Image>不属于<TD>或什至<TABLE>不属于它的<TD>单元格,但将始终将自身定位在该单元格的顶部而不替换任何内容或影响其布局的?
我正在考虑将游戏移植到HTML5,但遇到一些问题。
游戏使用多线程,渲染运行在主线程上,脚本运行在工作线程上。多个脚本可以(并且经常)同时运行。任何脚本都可以访问大量的全局数据,主要是从中读取但偶尔也可以写入。有适当的机制可确保线程安全性不成问题。
看起来HTML 5 Web Workers可以用来设置多线程,但是要使全局数据正常工作将是一个大问题,因为似乎没有任何简单的方法可以在Worker之间共享数据。从理论上讲,我可以将所有全局数据放在一个共享工作器中,并让每个脚本工作器向其发送消息以获取和设置数据,但是访问足够普遍,因此消息传递开销将完全破坏性能,特别是因为简单的读取就远远不够了。比写入更昂贵,并且可能需要某种CPS实现才能使其正常工作。
有没有什么好办法可以将这样的架构移植到HTML5和JavaScript?
如果我<input type="range">在窗体上放置一个控件,某些浏览器会(正确地)渲染一个滑块控件,而其他浏览器则不会知道是什么range,而是会渲染一个文本框.处理这种情况需要额外的验证,因为文本框可以包含任何任意文本.是否有任何JavaScript可以放入页面中说"在DOM中查看此控件,如果它是文本框控件,那么foo()"?
某些计算机安装了多个图形卡/芯片组,即使(例如笔记本电脑)它们没有多个显示器.
我在使用具有Intel和Nvidia图形硬件的笔记本电脑系统时遇到了麻烦.英特尔的驱动程序在OpenGL支持方面非常糟糕,我的代码遇到了一个无法解释的渲染错误,因为在创建渲染上下文时,它似乎默认为Intel系统,而不是Nvidia系统.
有没有办法在启动时避免这种情况?要说"对所有可用的图形驱动程序进行轮询,尽可能避免使用英特尔驱动程序,并使用可行的驱动程序构建一个OpenGL渲染上下文"?
delphi ×6
delphi-2010 ×2
html ×2
html5 ×2
javascript ×2
winapi ×2
alt-tab ×1
canvas ×1
colors ×1
concurrency ×1
css ×1
drawing ×1
focus ×1
layout ×1
opengl ×1
rtti ×1
web-worker ×1
windows ×1
windows-7 ×1