小编Raf*_*cci的帖子

TFS任务和错误:如果发现错误,我应该重新打开任务吗?

任务完成后,开发人员将其关闭.相关的用户故事开始由QA团队进行测试.

我的问题是:一旦QA团队发现了一个bug,除了他们打开一个bug之外,他们是否应该重新打开任务和相关的用户故事?

使用TFS 2012和敏捷模板

agile tfs tfs2012

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

代码复制检测 - Delphi

有没有人知道在SolidSDD等delphi程序中找到重复代码的好工具?

delphi refactoring

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

如何模拟另一个类负责实例化的类?

请考虑以下代码:

type
  TFoo1 = class
  public
    procedure DoSomething1;
  end;

  TFoo2 = class
  private
    oFoo1 : TFoo1;
  public
    procedure DoSomething2;
    procedure DoSomething3;
    constructor Create;
    destructor Destroy; override;
  end;


procedure TFoo1.DoSomething1;
begin
  ShowMessage('TFoo1');
end;

constructor TFoo2.Create;
begin
  oFoo1 := TFoo1.Create;
end;

destructor TFoo2.Destroy;
begin
  oFoo1.Free;
  inherited;
end;

procedure TFoo2.DoSomething2;
begin
  oFoo1.DoSomething1;
end;

procedure TFoo2.DoSomething3;
var
  oFoo1 : TFoo1;
begin
  oFoo1 := TFoo1.Create;
  try
    oFoo1.DoSomething1;
  finally
    oFoo1.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

我正在为一个班级创建单元测试,我坚持下去.我的问题都是关于模拟对象和我应该使用的设计模式的最佳方法.我是单元测试的类不是由我创建的.

  1. 在下面的示例中,我需要模拟,Foo1因为它向我在单元测试期间无法调用的Web服务发送请求.但是Foo1正在由TFoo2构造函数创建,我无法模仿它.在这种情况下我该怎么办?我应该修改TFoo2构造函数来接受这样的Foo1对象吗?

    constructor TFoo2.Create(aFoo1 …
    Run Code Online (Sandbox Code Playgroud)

delphi unit-testing design-patterns dependency-injection mocking

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

TidHttp文件下载trows内存不足异常

考虑使用Indy组件从Internet下载文件的以下代码:

procedure TForm26.Button1Click(Sender: TObject);
var
  vFileStream : TStream;
begin
  DeleteFile('C:\test.exe');
  vFileStream := TFileStream.Create('C:\test.exe', fmCreate);
  IdHTTP1.Get('SomeUrl', vFileStream);
  vFileStream.Free;
end;
Run Code Online (Sandbox Code Playgroud)

我得到一个Out of memory异常.发生的事情是,除了我正在使用的事实之外TFileStream,写入它的字节不会直接进入磁盘,相反,它们会一直停留在内存中直到get终止.

我试图下载的文件非常非常大.

有没有人知道如何下载一个大文件而不会出现内存不足的异常?

Delphi 2010和来自Indy SVN的最新Indy 10.

编辑

那不是FileStream问题.这是一个Indy问题.不知何故,Indy在写入流之前将文件缓存在内存中.

delphi file indy download delphi-2010

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

Dunit控制台模式 - 执行测试两次

我有一个dunit测试项目,我试图在控制台模式下运行它.当我执行项目时,它运行两次(它只打开一个控制台窗口,我看到它执行了两次测试),并且执行时也比在GUI模式下运行时花费更多时间.有谁知道如何只运行一次dunit控制台测试?

DPR源代码:

var  
  R: TTestResult;  

begin  
  Application.Initialize;  
  if IsConsole then begin  
    with TextTestRunner.RunRegisteredTests(rxbHaltOnFailures) do begin  
      R := TextTestRunner.RunRegisteredTests;  
      ExitCode := R.ErrorCount + R.FailureCount;  
      Free;  
    end  
  end  
  else begin  
    GUITestRunner.RunRegisteredTests;  
  end;  
end.
Run Code Online (Sandbox Code Playgroud)

delphi dunit

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

THttpApiServer - 示例

有没有人有一个THttpApiServer的样本(在Synopse上找到)?我无法找到有关使用此类创建简单Web服务器的任何文档.

delphi webserver

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

使用Delphi获取默认网关

有谁知道如何在Delphi 2010应用程序中获取默认网关?我发现了一些像windows这样的功能GetAdaptersAddresses,但我不知道如何使用它.

delphi winapi delphi-2010

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

调用windows explorer shell扩展

有没有办法以编程方式调用DLL扩展的DLL?我们使用在Windows资源管理器上注册shell扩展的软件,我需要在其上下文菜单中调用其中一个可用的项目.我没有想要调用的软件源代码.

编辑

仅当我在Windows资源管理器中选择PDF文件时,才会显示此上下文菜单.所以我需要调用它传递一个dll文件.

编辑

注册信息:

[HKEY_CLASSES_ROOT\CLSID {2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}] @ ="PDFTransformer3.PDFTContextMenu.1"

[HKEY_CLASSES_ROOT\CLSID {2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\InprocServer32] @ ="C:\ Program Files\ABBYY PDF Transformer 3.0\PDFTContextMenu.dll""ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID {2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\ProgID] @ ="PDFTransformer3.PDFTContextMenu.1"

[HKEY_CLASSES_ROOT\CLSID {2DC8E5F2-C89C-4730-82C9-19120DEE5B0A} \可编程]

[HKEY_CLASSES_ROOT\CLSID {2DC8E5F2-C89C-4730-82C9-19120DEE5B0A}\VersionIndependentProgID] @ ="PDFTransformer3.PDFTContextMenu"

编辑

是否可以ShellExecuteEx使用我想要的动词(不是默认动词)来调用?如果是这样,我如何调用我想要的动词(使用DLL)?

多数民众赞成我想要一个PDF文件的动词:

在此输入图像描述

c# windows delphi shell-extensions

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

循环通过IContextMenu

如何遍历IContextMenu的所有项目和子项并列出所有可用的动词?到目前为止,我从JCL中提取了这个工作代码:

function DisplayContextMenuPidl(const Handle: THandle; const Folder: IShellFolder; Item: PItemIdList; Pos: TPoint): Boolean;
var
  Cmd: Cardinal;
  ContextMenu: IContextMenu;
  ContextMenu2: IContextMenu2;
  Menu: HMENU;
  CommandInfo: TCMInvokeCommandInfo;
  CallbackWindow: THandle;
  vteste : string;
begin
  Result := False;
  if (Item = nil) or (Folder = nil) then
    Exit;
  Folder.GetUIObjectOf(Handle, 1, Item, IID_IContextMenu, nil,
    Pointer(ContextMenu));
  if ContextMenu <> nil then
  begin
    Menu := CreatePopupMenu;
    if Menu <> 0 then
    begin
      if Succeeded(ContextMenu.QueryContextMenu(Menu, 0, 1, $7FFF, CMF_EXPLORE)) then
      begin
        CallbackWindow := 0;
        if Succeeded(ContextMenu.QueryInterface(IContextMenu2, ContextMenu2)) then
        begin …
Run Code Online (Sandbox Code Playgroud)

delphi shell-extensions

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

如何在THTTPRIO中设置反馈?

我开发了一个Webservice,我在Delphi上使用它.

Indy组件有一个OnWork事件,但我在THTTPRIO中找不到类似的东西.

是否有OnWork活动THTTPRIO?我猜它在内部使用了Indy,但我确信这一点.

delphi web-services delphi-2010

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