我正在使用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- 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值并且给出了编译错误
问题:
这是我的代码:
///// 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中使用异常的好视频.
请考虑以下代码
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秒.
我正在考虑使用SQLite
它是一个独立的,服务器少,零配置,事务性SQL数据库引擎,是开源的.
通过使用Blackfish而不是SQLight,我能获得任何收益吗?
嗨,我一直在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时,我收到"访问冲突"
我在 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)
但这不起作用
使用C代码重置Pic18的最佳方法是使用HiTech Pic18 C编译器
编辑:
我当前正在使用
void reset()
{
#asm
reset
#endasm
}
Run Code Online (Sandbox Code Playgroud)
但必须有一个更好的方法
delphi ×8
windows ×2
blackfish ×1
delphi-2009 ×1
delphi-2010 ×1
delphi-mocks ×1
delphi-xe2 ×1
dunit ×1
embedded ×1
ethernet ×1
microchip ×1
networking ×1
pic ×1
shellexecute ×1
sqlite ×1
vcl ×1
video ×1