Delphi中的SendKeys函数无法使用常量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi中的SendKeys函数无法使用常量相关的知识,希望对你有一定的参考价值。

大家帮我看看,为什么我使用sendkeys函数不能发送TAB,,等等按键呢??提示::
[Error] Unit1.pas(41): Incompatible types: 'TFuncKeyValue' and 'PAnsiChar' 错误..

我的第一种格式: SendKeys(FK_TAB,False); 错误!
我的第二种格式: SendKeys(TAB,False); 错误!
我的第三种格式: SendKeys(TAB,False); 错误!
我的第四种格式: SendKeys('TAB',False); 错误! 虽然编译没错,但是直接发字符串了T.T

求帮助呀..看别人在VB里面用得这么HI~~~~
我把单元放下来看看属性,,明明有哇~~~~~求帮助~~~

sendkey 要企业版版本才能用。我用D7不能用这个函数。
网上建议的用法:
edit1.focused;
snedkeys(TAB, false);

旧版本可以用底下的方式来作,这是模拟TAB被按下再放开。
keybd_event(VK_TAB, 0, 0, 0);
keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0);追问

因为用习惯了D7 不想换高版本,,请问下高版本好用吗??如果好用的话,那个高版本好用呢??

追答

网上前辈建议若会使用到 unicode就用 2010,不然就D7将就著用。
手机APP则建议还是用原生开发工具比较好,或许可以玩玩它的 XE系列。

参考技术A Dehphi没有SendKeys函数,如果你用第三方的函数,那可用Delphi中的VK_开头的键值常量,比如VK_TAB。

量角器 .sendKeys() 无法使用 ngModel 处理输入

【中文标题】量角器 .sendKeys() 无法使用 ngModel 处理输入【英文标题】:Protractor .sendKeys() not working on inputs with ngModel 【发布时间】:2018-12-04 09:28:45 【问题描述】:

我找不到关于这个主题的任何东西,所以我想我会问。

我目前正在我的 Angular 5 应用程序上编写 E2E 测试。Protractor 正在按照默认 Angular CLI 生成器项目中的配置执行 E2E。我需要能够在我的 E2E 测试中更改文本输入字段的值。

我当前的代码。

...
it('should submit report.',() => 
    page.setField("100");
...

以上引用了这个类和方法

import  browser, by, element  from 'protractor';

export class Page 

setField(text: string): Page 
    let field = element(by.id('myField'));
    field.sendKeys(text);
    return this;
    
...

还有我的 html。

<input id="myField" decimal="16" dataLoadedEvent="formatData" [(ngModel)]="rm.dataField" class="form-control input-sm">

这很简单。显然,我已经将它概括为消费......但希望它仍然能够理解这一点。

注意事项:

如果我从 html 输入字段中删除以下内容,.sendKeys() 有效

decimal="16" dataLoadedEvent="formatData" [(ngModel)]="rm.dataField"

如果我只是删除

decimal="16" dataLoadedEvent="formatData" 

sendKeys() 仍然不起作用。这意味着问题在于该字段上发生的 [(ngModel)] 绑定。不是我的自定义十进制格式指令。

所以,我的问题是,我需要做什么才能使 .sendKeys() 与使用 [(ngModel)] 绑定的字段一起工作?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我能够通过执行以下操作来解决此问题:

field.clear().then(() => 
    field.sendKeys(text);
);

我在谷歌搜索时看到了这个解决方案,但我害怕在 E2E 测试中引入额外的异步进程(因为量角器通常不会对此做出友好的反应)。但是,一旦我实施了上述操作,我的字段就开始更新。

希望这对某人有所帮助。

【讨论】:

【参考方案2】:

我也遇到了同样的问题。我解决如下。

element(by.css('[name="firstName"]')).sendKeys('Protector User');

【讨论】:

以上是关于Delphi中的SendKeys函数无法使用常量的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Selenium Java 中的 sendKeys() 将文件上传到“浏览”按钮

无法使用 (SendKeys.Send) 粘贴字符串

量角器 .sendKeys() 无法使用 ngModel 处理输入

delphi const

DELPHI 中如何定义这个静态二维数组常量

Delphi 错误 E2283 局部常量过多