是否可以从回调 onItemClick 的参数中确定原始 AutoCompleteTextView?
我有以下回调函数,如果我点击 AutoCompleteTextView 的选择弹出窗口的一个项目,它会正确触发:
public void onItemClick(AdapterView<?> adaptView, View view, int position,
long id) {
}
Run Code Online (Sandbox Code Playgroud)
我知道,我可以实现自己的 per-textview 侦听器类,但是我想确定哪个 AutoCompleteTextView 仅从回调函数的参数启动了单击 - 这可能吗?
我习惯First()在迭代查询结果时总是调用:
Qry.Open;
Qry.First;
while not Qry.Eof do
begin
//do something
Qry.Next;
end;
Run Code Online (Sandbox Code Playgroud)
有没有理由,这First()不是自动调用的Open()?
或者问另一种方式:我们使用某种DB访问抽象类.将呼叫First()纳入我们的Open()日常工作是否是一个好主意?
我们有一个有问题的客户,我们的Delphi应用程序似乎没有启动.但我们不能在这里重现它.
然而,程序正在启动,但是立即以静默方式退出,错误代码为250477278.有人知道,这个错误代码意味着什么(以及定义的位置)?
编辑:
在我们的代码中我们有调用Halt(ErrorNumber),所以看起来,这个错误代码直接来自Delphi?
是否可以在Delphi中拥有枚举类型的所有项目的常量集合?
type
TItems = (
iOne,
iTwo,
iThree
);
TItemsSet = set of TItems;
const
SOMEITEMS: TItemsSet = [iTwo, iThree];
ALLITEMS: TItemsSet = ?????
Run Code Online (Sandbox Code Playgroud)
我希望ALLITEMS能够永远拥有TItems的所有成员.我宁愿让这个不变.
编辑: 如果我的枚举看起来如此:
TItems = (
iOne = 1,
iTwo = 2,
iThree = 5
);
Run Code Online (Sandbox Code Playgroud) 我想替换看起来像的代码
resourcestring
RESSTR_ERR1_TRYAGAIN = 'Error 1. Please try again.';
RESSTR_ERR2_TRYAGAIN = 'Error 2. Please try again.';
RESSTR_ERR3_TRYAGAIN = 'Error 3. Please try again.';
Run Code Online (Sandbox Code Playgroud)
用这样的东西:
resourcestring
RESSTR_ERR1 = 'Error 1.';
RESSTR_ERR2 = 'Error 2.';
RESSTR_ERR3 = 'Error 3.';
RESSTR_TRYAGAIN = 'Please try again.';
RESSTR_ERR1_TRYAGAIN = RESSTR_ERR1 + ' ' + RESSTR_TRYAGAIN; //error
RESSTR_ERR2_TRYAGAIN = RESSTR_ERR2 + ' ' + RESSTR_TRYAGAIN;
RESSTR_ERR3_TRYAGAIN = RESSTR_ERR3 + ' ' + RESSTR_TRYAGAIN;
Run Code Online (Sandbox Code Playgroud)
但这会导致错误E2026 Constant expression expected.,我明白了.
不过,我想知道是否有解决方案,允许我以RESSTR_ERRx_TRYAGAIN上述方式定义.(目标是在不触及使用RESSTR_ERRx_TRYAGAIN的所有位置的情况下消除其他翻译).
直到现在我唯一的想法是以下,但我不想使用它,因为这是相当丑陋的:
var
RESSTR_ERR1_TRYAGAIN: string; …Run Code Online (Sandbox Code Playgroud)