小编Jor*_*man的帖子

当我的应用程序没有焦点时,如何捕获键盘状态?

我女朋友的新笔记本没有NumLock和CapsLock的指示灯,所以我写了一个小程序,在屏幕上显示它们的状态:

procedure TForm1.Timer1Timer(Sender: TObject);  
var  
  KeyState: TKeyboardState;  
begin  
  GetKeyboardState(KeyState);  
  if KeyState[VK_NUMLOCK] = 0 then  
    PanelNumLock.Color := clSilver  
  else  
    PanelNumLock.Color := clLime;  
  if KeyState[VK_CAPITAL] = 0 then  
    PanelCapsLock.Color := clSilver  
  else  
    PanelCapsLock.Color := clLime;  
end;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

只要我的程序具有焦点,这就可以工作,但是当焦点转到另一个程序时,状态将不再更新.(但是,只需将鼠标移到表单上,不进行单击就足以进行更新.)

当另一个应用程序有焦点时,如何让程序更新?

delphi delphi-xe8

8
推荐指数
2
解决办法
2377
查看次数

如何在Delphi中获得TEdit的画布?

我想缩短文件名以适应TEdit,比如

Edit1.Text := MinimizeName(FileName, Edit1.Canvas, Edit1.Width);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不能编译,因为TEdit Canvas直接拥有属性.其字体指标需要画布.如何访问TEdit的画布?

(MinimizeName在Vcl.FileCtrl中声明.)

delphi tcanvas delphi-xe8

6
推荐指数
2
解决办法
1938
查看次数

Delphi的选项卡式控件?

我正在使用Delphi XE8.

我想创建一个选项卡式控件,每个选项卡都有自己的面板.我尝试了TTabControl,为此我可以创建不同的选项卡.但是当我在第一个选项卡处于活动状态时将一个组件放在控件上时,当我更改选项卡(TabIndex)时它仍然可见.如何在设计时为不同的选项卡创建不同的布局?或者我使用了错误的组件?

delphi delphi-xe8

2
推荐指数
1
解决办法
1270
查看次数

我可以让Delphi自动编译RC文件吗?

我认为当我将资源文件添加到我的程序中时,Delphi会自动编译资源文件

{$R 'resource.rc'}
Run Code Online (Sandbox Code Playgroud)

但链接器返回错误消息Error reading file "D:\resource.rc".但是,当我查看项目选项时,brcc32.exe显式列为要使用的资源编译器:

在此输入图像描述

我知道我可以从CLI调用资源编译器,但我更愿意自动编译资源.我怎样才能做到这一点?我正在使用Delphi XE8.

delphi resources

1
推荐指数
1
解决办法
1733
查看次数

标签 统计

delphi ×4

delphi-xe8 ×3

resources ×1

tcanvas ×1