【发布时间】:2013-06-14 05:38:58
【问题描述】:
我想创建一个带有固定 StringGrid 的 iOS 应用程序。这个东西的每个单元格都应该只接受数值。为此,我想将 KeyboardType 设置为 vktNumberPad ......但到目前为止还没有找到一个入口点。这里有没有人知道如何做到这一点?
好的,所以按照 Mikes 的提示,我开始使用自己的列类。
TNumEditCell = class(TEdit)
end;
TNumberColum = class(TStringcolumn)
private
function CreateCellControl: TStyledControl; override;
end;
令人费解的部分来了:
function TNumberColum.CreateCellControl: TStyledControl;
begin
result := TNumEditCell.Create(Self);
TNumEditCell(result).KeyboardType := vktNumberPad; // <- is undeclared!! What?!
TNumEditCell(result).OnChange := DoTextChanged;
end;
我们的好朋友编译器不知道vktNumberPad 是什么。即使我用电线杆FMX.Types.TVirtualKeyboardType(vktNumberPad) 指向他也不行。我想我做错了什么:(
最终编辑:确实我做错了什么,正如彼得指出的那样。因此,使用上面的代码和 Peters 提示一切正常。嗯...我该如何完成这个问题?
【问题讨论】:
-
对于tedit,您可以在设计器中设置KeyboardType。你不能用 tstringgrid 做到这一点吗?
-
不,不像 TEdit 那样简单。至少我找不到房产。
-
网格单元只是一个 TEdit,所以应该没问题,但您需要一个自定义列类,以便您可以在 CreateCellControl 中设置它 - monkeystyler.com/guide/Custom-Grid-Columns
-
@Sherlock70,您是否尝试过将普通的 TEdit 组件与 vktNumberPad 一起使用?对我来说,无论哪个指向 IFMXVirtualKeyboardService 接口中的错误,VirtualKeyboard 总是相同的。
-
@PeterVonča,带有 vktNumberPad 的 TEdit 在同一个应用程序中运行良好。但是我正在使用 X4 的演示版...难道这就是我最近的努力没有结果的原因吗?
标签: ios delphi firemonkey delphi-xe4 firemonkey-fm3