问题标签 [delphi-10.1-berlin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2261 浏览

firemonkey - delphi fmx DrawBitmap函数

在下面的示例中,您可以看到应用程序在红色背景矩形 (512x260) 上水平并排绘制了两个 256x256 像素的位图(黄色和蓝色)(0-255 和 256-511)。没有缩放。问题是,为什么在两者之间可以看到背景(红色)的垂直像素线?德尔福 10.1

非常感谢

0 投票
2 回答
1229 浏览

delphi - 如何在没有固定宽度的情况下左右对齐控件?

我在 ScrollBox 中有 6 个 RichEdit 控件。它们需要从上到下依次左对齐,但我需要不固定宽度,所以当文本长度超过 ScrollBox 宽度时,我可以使用滚动条滚动查看全文。

如果我设置:

它们完美对齐并在设计中保持固定,因此不会意外移动它们,但宽度固定。不好。

如果我手动对齐它们,那么单击它们时它们不会固定并且可以移动,我需要一直重新排列。恼人的。

图片显示在所有带有 Align = alTop 且宽度固定为 ScrollBox 宽度的 RichEdits 顶部。底部示例是所有 RichEdits 的手动对齐,其宽度可以超出 ScrollBox 的宽度,但它们可以在设计中移动:

在此处输入图像描述

所以,我想让它们像 alTop 一样固定在左侧,顶部,但不固定宽度。我怎样才能做到这一点?

0 投票
1 回答
707 浏览

delphi - 在 TGridPanel 中获取单击控件的列索引

我正在使用 aTGridPanel来容纳一些面板。在设计时,我将网格面板设置为 1 行 5 列。

我可以使用此代码将面板添加到网格中,效果很好:

我想要做的是TPanel当我点击它时从网格中删除它(这就是为什么我在上面的代码中将点击处理程序设置为网格面板的处理程序)。

在那个点击处理程序中,我这样做了,这几乎可以工作:

使用参数 forUpdateControlColumn()会导致网格中面板的顺序发生变化 - 第一个和第二个交换位置。

我可以通过将列索引添加到面板的标记属性来解决这个问题,然后将其传递给 UpdateControlColumn()。这样就可以了,但是一旦面板被移除,更高的标签号就不再有效 - 面板已经移动了列。

那么,如何从OnClick处理程序中获取面板所在的列?

我正在使用 Delphi 10.1 Berlin - 如果这有什么不同的话。

为了测试这一点,我开始了一个新项目,添加了一个TGridPanel,将其设置为 1 行和 5 个等宽的列。我添加了 6 个控件并使用以下代码为每个TButton控件创建了一个处理程序:OnClick

单击几个按钮以添加一些面板,然后单击面板将其删除。

0 投票
1 回答
373 浏览

delphi - 循环通过大记录的 TList 时的长时间延迟

我在 Windows 10 中使用 Delphi 10.1 Berlin。

我有两条不同大小的记录。我编写了代码来循环遍历其中两个TList<T>记录以测试经过的时间。循环遍历较大记录的列表运行速度要慢得多。

谁能解释原因,并提供解决方案以使循环运行得更快?

0 投票
1 回答
356 浏览

delphi - 实现 TComponentEditor 的自定义 Firemonkey 组件。在设计时将子控件添加到父控件

我有一个自定义的 FireMonkey 控件 (TComboBox),它也有一个自定义的 TComponentEditor。当我覆盖 ExecuteVerb 方法并尝试添加子组件(自定义 TListBoxControl)自定义 TComboBox 时,它不会在设计时显示

默认 TComboBox 行为:

默认 TComboBox 行为

自定义 TComboBox

自定义 TComboBox

我的 ExecuteVerb 代码:

我试图追踪 TComboBox 尝试执行此操作的方式,但似乎无法找到具有正确实现的单元

** 编辑 **

好的 - 我已经设法了解了 TMS 的人如何通过他们的组件(购买和支付)实现这一目标,并且我已经设法推断出以下内容

但是当我在 ComponentEditor 中单击 AddTPpListBoxItem 时,我收到以下错误:

TPpListBoxItem 类不适用于此模块

0 投票
1 回答
155 浏览

delphi - 如何用 TCheckBox 中的属性替换全局变量?

我有一个 Checkbox1,我想自定义当用户单击复选框的标题(文本)时,它不会更改其状态(选中/未选中),但只有在单击实际复选框方格时才会更改。

这是具有 2 个全局变量的当前代码,一个表示何时跳过更改状态,另一个表示记住当前状态并确保在 OnClick 之后保持不变 - 因为当流处于 OnClick 时状态已经更改:

现在我想用 TCheckBox 中的 2 个新属性来替换全局变量:

它可以工作,但是如果我单击标题然后关闭表单,则会发生此错误:

Project Project1.exe 引发异常类 $C0000005,并带有消息“0x004080c5 处的访问冲突:读取地址 0x0000000d”。

错误发生procedure TMonitor.Destroy;在系统单元中:

我在做什么错,为什么会发生错误?

0 投票
1 回答
1246 浏览

delphi - Delphi 从 Android 上的 Form 中删除 FireMonkey 元素

我在事件中使用以下代码在我的表单上创建了一个元素OnShow

在某些操作中,我需要动态删除布局:

此代码在 Windows 上运行良好,但在 Android 上不会删除任何内容。

0 投票
1 回答
1737 浏览

android - install_failed_older_sdk 错误 Delphi 10.1 Berlin

我正在使用 Delphi 10.1 Berlin 进行 Android 编程。单击编译项目时,会出现较旧的 sdk 错误。我无法更改 AndoridManifest.xml,因为文件动态加载并在运行项目时重新创建。Delphi XE7 没问题,但 Delphi 10.1 Berlin (SDK 24) 出现错误。

我的手机:LG P920 Android 版本:2.3.5 SDK 工具:已安装(2.3.3-2.3.7 API 10 和其他新版本) Delphi:10.1 Berlin Windows 7

一般的

SDK 属性

0 投票
1 回答
358 浏览

delphi - 如何在 TVirtualInterface TVirtualInterfaceInvokeEvent 中获取(方法:TRttiMethod)的所有权属性?

我如何获得方法的所有权属性:TVirtualInterface 类的 OnInvoke 方法中的 TRttiMethod?

我有这个界面:

和这个类:

我想获得方法的 TRttiProperty:TRttiMethod,但是如何?如果我将界面更改为:

该代码有效,但我想要这样的用户界面:

0 投票
1 回答
540 浏览

delphi - Delphi TTrackBar 没有完整的事件

Delphi TTrackBar 有两个用于跟踪更改的事件:

  1. 改变

  2. 在线跟踪

但他们俩都做同样的事情。例如:

在任何小的变化上,它都会显示10消息。

如何检测手机上的最后变化?在所有跟踪之后必须发生变化吗?