有没有办法(在使用Delphi 2010的Windows上)获取文件中的文件数而不实际遍历所有文件?
我想在一些文件系统索引操作期间实现进度条.出于这个原因,我需要知道目录中有多少文件.
获取目录中文件数的最快方法是什么?
我有一个主表单和状态表单,我在我的应用程序中进行工作时显示.如果工作完成,我只需调用Hide状态表单,状态表单就会消失.
当我在等待表单可见时最小化主表单时,我的问题就出现了.然后隐藏这两种形式,这就是我想要的.但是,如果工作在主窗体最小化时完成,那么当我恢复它时,状态窗体也会恢复,即使Hide已在最小化时调用它.
Visible似乎是False对状态表单应用程序最小化时,因此呼吁Hide似乎没有任何效果(帮助说,它只是设置Visible到False).
这些观察是否正确?当应用程序再次获得焦点时,表单可见性如何恢复?在应用程序最小化时如何隐藏表单?
我想让Hudson使用我的Delphi项目.我使用以下批处理文件来构建我的项目(如本博文中所示):
call "C:\Program Files\Embarcadero\RAD Studio\8.0\bin\rsvars.bat"
msbuild /p:Win32LibraryPath="$(BDS)\lib;$(BDS)\lib\win32\release;$(BDS)\lib\win32\debug;$(BDSUSERDIR)\Imports;$(BDS)\Imports;$(BDSCOMMONDIR)\Dcp;$(BDS)\include;" /t:build /p:config=Debug /verbosity:detailed "MyProject\src\MyProject.dproj"
if errorlevel 1 exit 1
Run Code Online (Sandbox Code Playgroud)
我总是最终得到错误
Embarcadero Delphi for Win32 compiler version 22.0
Copyright (c) 1983,2010 Embarcadero Technologies, Inc.
Fatal: E2202 Required package 'rtl' not found
Run Code Online (Sandbox Code Playgroud)
我不明白这个rtl.dcp在库路径上的"$(BDS)\ lib\win32\release"中.我顺便使用运行时包.
有什么提示我可以做些什么来解决这个问题?
编辑似乎路径不会在命令行中结束,这看起来像(删除项目特定的路径后):
C:\Program Files\Embarcadero\RAD Studio\8.0\bin\dcc32.exe -$O- -$W+ --inline:off -$A4 -$R+ -$Q+ --doc --no-config -B -LUrtl;vcl;ReportingR;ComponentsR -Q -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE -DDEBUG;CONSTRAINT_CHECKING;_VER6;EUREKALOG_VER6;EurekaLog -V -VN -GD --drc -W-SYMBOL_DEPRECATED -W-SYMBOL_PLATFORM -W-UNIT_PLATFORM -W-UNIT_DEPRECATED Myproject.dpr
Run Code Online (Sandbox Code Playgroud) 我想用代码创建大型Bitmap
LargeBmp := TBitmap.Create;
try
LargeBmp.Width := 1000; // fine
LargeBmp.Height := 15000; // XP - EOutOfResources, Not enough memory, Win 7 - works fine
...
finally
FreeAndNil(LargeBmp);
end;
Run Code Online (Sandbox Code Playgroud)
此代码EOutOfResources在Windows XP上引发了"内存不足" 的异常,但在Windows 7中运行正常.
怎么了?为什么内存不足?它只有60 MB.
不应该运行我的应用程序的多个实例.因此项目源包含:
CreateMutex (nil, False, PChar (ID));
if (GetLastError = ERROR_ALREADY_EXISTS) then
Halt;
Run Code Online (Sandbox Code Playgroud)
现在我想以编程方式重新启动我的应用程序.通常的方式是:
AppName := PChar(Application.ExeName) ;
ShellExecute(Handle,'open', AppName, nil, nil, SW_SHOWNORMAL) ;
Application.Terminate;
Run Code Online (Sandbox Code Playgroud)
但是由于互斥锁,这在我的情况下不起作用.即使我在启动第二个instace之前释放互斥锁也无法工作,因为shutdown需要一些时间并且两个实例不能并行运行(因为常见的资源和其他影响).
有没有办法重新启动具有这些特征的应用程序?(如果没有额外的可执行文件可能)
提前致谢.
我刚才注意到了
var
ObjList : TObjectList <TMyObject>;
...
ObjList := TObjectList <TMyObject>.Create (True);
ObjList.Add (TMyObject.Create);
ObjList.Clear;
Run Code Online (Sandbox Code Playgroud)
不释放对象.查看源代码,似乎没有cnRemoved触发通知Clear(继承自TList <T>).
我的问题:这是故意的吗?有没有理由为什么人们不想在这种情况下收到这些通知Clear?或者这可以被视为集合类中的错误?
编辑
事实证明,我把线放了
inherited Create;
Run Code Online (Sandbox Code Playgroud)
在TMyObject析构函数的顶部,它应该进入构造函数.这就是为什么我报告的内存泄漏看起来像是TObjectList没有释放物品.看看来源说服了我(我被Count财产困住了).还是要谢谢你的帮助!
您建议使用哪些Delphi可视控件或控件组合来编辑,添加和删除键/值对(字符串)?
如何将构建服务器从Delphi XE迁移到Delphi XE2?
我想将对象A传递给第二个对象B,让B做一些处理,最后释放A以防不再需要它.下面给出了一个淡化版本.
program Project6;
{$APPTYPE CONSOLE}
uses
SysUtils;
type
TMyObject = class(TObject)
public
FField1: string;
FField2: string;
end;
TBigObject = class(TObject)
public
FMyObject: TMyObject;
procedure Bind(var MyObject: TMyObject);
procedure Free();
end;
procedure TBigObject.Bind(var MyObject: TMyObject);
begin
FMyObject := MyObject;
end;
procedure TBigObject.Free;
begin
FreeAndNil(FMyObject);
Destroy();
end;
var
MyObject: TMyObject;
BigObject: TBigObject;
begin
try
MyObject := TMyObject.Create();
BigObject := TBigObject.Create();
BigObject.Bind(MyObject);
BigObject.Free();
if (Assigned(MyObject)) then begin
WriteLn('Set MyObject free!');
MyObject.Free();
end;
ReadLn;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end; …Run Code Online (Sandbox Code Playgroud) 我有一份注册表和一份登录表.登录表单(我的)Firefox默认提供用户名和密码,这没关系.但是在注册表上它也是一样的 - 这没有任何意义,它会产生问题,因为输入密码字段而"重复密码"字段不是.
有没有办法可以更改注册表单的HTML,以便Firefox和其他浏览器不会自动填写特定的密码字段?
编辑:我在这个主题上发现了很多问题(和答案),但是建议的解决方案(autocomplete=off在密码输入字段上设置)对我来说在Firefox上不起作用(它仍然自动填充字段).我找到了这个解决方案,但它看起来有点难看(如果用户输入用户名并点击Tab,则不起作用).有谁知道更好的方法?
delphi ×9
delphi-xe ×5
delphi-2010 ×2
windows ×2
bitmap ×1
collections ×1
delphi-xe2 ×1
filesystems ×1
firefox ×1
generics ×1
graphics ×1
html ×1
hudson ×1
passwords ×1
vcl ×1