小编Cha*_*iga的帖子

Delphi - 使用TApplicationEvents OnShortCut事件来检测Alt + C键按下

我正在使用TApplicationEvents OnShortCut事件来获取Delphi程序中的应用程序键盘快捷方式.

使用以下代码:

procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean) ;
begin
   if (Msg.CharCode = VK_F9) then
   begin
     ShowMessage('F9 pressed!') ;
     Handled := True;
   end;
end;
Run Code Online (Sandbox Code Playgroud)

题:

如何检测何时按下"ALT C"?

delphi vcl

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

德尔福模拟 - 是否可以在使用'WillReturn'模拟的函数中使用'VAR'或'OUT'排列?

我刚开始使用Delphi- Mocks和我的dunit测试,但它几乎没有文档.

问题是:

我正在尝试编写测试 'Test_LogonUser_CheckPwd_GOOD_PASSWORD'

但我不知道如何模拟函数 Fusers.CheckPwd(TEST_USERID,TEST_PASSWORD,ERROR_CODE);

通常我会使用: Fusers.Setup.WillReturn(True).When.CheckPwd(TEST_USERID,TEST_PASSWORD,ERROR_CODE);

但是'ERROR_CODE'是一个OUT值并且给出了编译错误

问题:

  1. 有没有办法让'WillReturn'与OUT或VAR参数一起工作?
  2. 有没有不同的方法来模拟'CheckPwd',以便它看到OUT或VAR参数?

这是我的代码:

/////  TDlUsers
interface
type
{$M+}
  IDlUsers = Interface(IInterface)
 ['{3611B437-888C-4919-B304-238A80DAD476}']
    function   VerifyPassword(UserId: integer; Pwd: string): Boolean;
    function   CheckPwd(UserId: integer; Pwd: string; out ErrorCode: Integer) : Boolean;
  end;
  function  Dl_Users : IDlUsers;
{$M-}
implementation
type
  TDlUsers = class(TDbIControl,IDlUsers)
  public
    function   VerifyPassword(UserId: integer; Pwd: string): Boolean;
    function   CheckPwd(UserId: integer; Pwd: string; out ErrorCode: Integer; out ErrorMsg:String) : Boolean;
  end;

  function  Dl_Users : IDlUsers;
  begin
    result :=  TDlUsers.create;
  end; …
Run Code Online (Sandbox Code Playgroud)

delphi dunit delphi-xe2 delphi-mocks

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

4
推荐指数
2
解决办法
225
查看次数

计时器在德尔福

请考虑以下代码

Timer1 .Enabled := False;
Timer1.Interval : = 300;
For I := 1 to NumberOfTimesNeed do
Begin

   Timer1 .Enabled := False;    //  
   Timer1 .Enabled := True;     // reset the timer to 0.30 seconds

   TakesToLong     := False;
   DoSomethingThatTakesTime;    // Application.ProcessMessages is called in the procedure

   If TakesToLong = True then 
      TakeAction;
End;

procedure Timer1Timer(Sender: TObject);
begin
   TakesToLong:= True;
end;
Run Code Online (Sandbox Code Playgroud)

题 :

当我禁用然后启用Timer1时

Timer1.Enabled := False;
Timer1.Enabled := True;
Run Code Online (Sandbox Code Playgroud)

这会重置计时器吗?

即它会在超时之前等待0.30秒.

delphi

4
推荐指数
1
解决办法
3万
查看次数

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

SQLite或Blackfish - 我应该如何使用delphi应用程序?

我正在考虑使用SQLite

它是一个独立的,服务器少,零配置,事务性SQL数据库引擎,是开源的.

通过使用Blackfish而不是SQLight,我能获得任何收益吗?

delphi sqlite blackfish

4
推荐指数
2
解决办法
1040
查看次数

Delphi 2009/2010和Windows API调用的Unicode问题

嗨,我一直在Delphi 2006中使用此功能,但现在使用D2010它会抛出错误.我认为这与切换到Unicode有关.

  Function TWinUtils.GetTempFile(Const Extension: STRING): STRING;
  Var
     Buffer: ARRAY [0 .. MAX_PATH] OF char;
  Begin
    Repeat
      GetTempPath(SizeOf(Buffer) - 1, Buffer);
      GetTempFileName(Buffer, '~~', 0, Buffer);
      Result := ChangeFileExt(Buffer, Extension);
    Until not FileExists(Result);
  End;
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能让它发挥作用?

编辑

调用ChangeFileExt时,我收到"访问冲突"

delphi delphi-2009 delphi-2010

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

使用 Windows 'ShellExecute' 函数将数据传送到文件

我在 windows vista 中使用了“ ShellExecute ”函数

有没有办法将输出通过管道传输到文件?

IE

MySqlDump.exe '-u user1 -ppassword dbName > TheOutputFile.Sql

这是我的代码

theProgram     :=  'MySqlDump.exe';
itsParameters  :=  '-u user1  -ppassword  dbName';
rslt := ShellExecute(0, 'open',
                       pChar (theProgram),
                       pChar (itsParameters),
                       nil,
                       SW_SHOW);
Run Code Online (Sandbox Code Playgroud)

编辑:

我试过了

 itsParameters  :=  '-u user1  -ppassword  dbName > TheOutputFile.Sql';
Run Code Online (Sandbox Code Playgroud)

但这不起作用

windows delphi shellexecute

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

从C重置Pic18

使用C代码重置Pic18的最佳方法是使用HiTech Pic18 C编译器

编辑:

我当前正在使用

void reset()
{
#asm 
  reset
#endasm
}
Run Code Online (Sandbox Code Playgroud)

但必须有一个更好的方法

embedded microchip pic

3
推荐指数
3
解决办法
8035
查看次数

寻找程序来查看Windows消息

我正在寻找一个程序来查看Windows消息

你能帮我吗?

windows windows-messages

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