我在#.NET应用程序中使用TabControl.默认情况下,TabControl的第一个标签页显示在表单加载中.我想激活/显示表单加载中的其他标签页.以编程方式,我如何显示其他标签页?
当我在OleContainer(inplace)中编辑Word文档并切换到另一个Word文档然后切换回来时,我再也无法使用我的rightmouse按钮了.上下文菜单不会显示.
这发生在Word 2000上,而不是Word 2007上(我不知道其他版本).
我怎样才能摆脱这种行为?
如何重现:
OleContainer1.DestroyObject,以便您可以停止编辑编辑:我在以下系统上重现了上述行为(使用Citrix):
Windows Server 2003企业版
5.2版(Build 3790.srv03_sp2_rtm.070216-1710:Service Pack 2)
Microsoft Word 2000(9.0.6926 SP-3)
我使用Delphi 7(build 8.1)来创建应用程序.

我需要制作一个包含PNG图像和透明区域的表格的程序.表格必须是隐形的,而图像必须保持可见,透明区域必须保持透明.问题是图像透明度.在这种情况下,主窗体是透明的,不可见的,而所有组件/控件都保持可见.但是,PNG图像的透明区域不保持透明度.如何保持透明度?
procedure MakeTransparent;
var
AControl: TControl;
A, Margin, X, Y, CtlX, CtlY: Integer;
begin
Margin := (Width - ClientWidth) div 2;
FullRgn := CreateRectRgn(0, 0, Width, Height);
X := Margin;
Y := Height - ClientHeight - Margin;
ClientRgn := CreateRectRgn(X, Y, X + ClientWidth, Y + ClientHeight);
CombineRgn(FullRgn, FullRgn, ClientRgn, RGN_DIFF);
for A := 0 to ControlCount - 1 do
begin
AControl := Controls[A];
if (AControl is TWinControl) or (AControl is TGraphicControl) then with AControl do
begin
if Visible then …Run Code Online (Sandbox Code Playgroud) 当FastMM记录内存泄漏时,它包含一个回溯9次调用的堆栈跟踪.问题是堆栈跟踪过于笼统,无法轻松找到问题.跟踪中的最后一个函数调用至少被调用50次,并且泄漏的对象是非常常见的.
我该怎么做才能使堆栈跟踪更长?
更容易找到泄漏的提示当然是受欢迎的,泄漏的对象主要是接口,因此它是交叉引用或_ReleaseRef未调用的东西.
我在Delphi 7上使用FastMM492.
有没有一种简单的方法可以将带有系统路径变量的路径转换为绝对路径?
因此%ProgramFiles%\Internet Explorer\hmmapi.dll变得C:\Program Files\Internet Explorer\hmmapi.dll
我想知道是否有可以执行此操作的API调用,或者我是否必须以困难的方式执行此操作并检测%..%序列并将其替换为相应的环境变量?
我昨天安装了jclcompressin组件.当我使用它时出现错误"加载到7z.dll".有没有任何使用jclcompressıon单元的示例代码?好像我压缩文本文件?
我正在尝试打开excel 2003工作簿并将其保存为其他内容,例如excel 95.我使用以下代码:
XLSApp:=TExcelApplication.Create(Self);
XLSApp.Workbooks.Open(SomeFileName,NULL,false,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,defaultlcid);
XLSWB:=TExcelWorkbook.Create(XLSApp);
XLSWB.ConnectTo(XLSApp.Workbooks.Item[1]);
XLSWB.SaveCopyAs(ExtractFilePath(edTable.Text)+'temp.xls');
XLSWB.SaveAs(SomeOtherFileName,xlExcel7,EmptyParam,EmptyParam,False,False,xlNoChange,xlUserResolution,False,EmptyParam,EmptyParam,EmptyParam,DefaultLCID);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这段代码在客户端计算机上提供了"Ole 800A03EC",而它在我的计算机上运行.请注意,我安装了Office 2007,并且他有Office 2003 SP3.
任何帮助将非常感谢.
我一直在网上看几个小时,使用谷歌,尝试使用PDF,仍然无法在Delphi 7中加载图像资源.
我的test.rc文件是这样的:
1 RT_BITMAP "1.bmp"
Run Code Online (Sandbox Code Playgroud)
我已经添加了test.rc文件使用我的项目项目- >添加到项目..它编制了test.res在构建文件,并似乎已经自动包含在.RES文件到我的项目(因为使用{$ R test.res}会说我已经使用了那个资源).我也试图消除test.res利用项目工程- >从项目中删除..和手动添加{$ R test.res}我的项目.
但无论我如何包含test.res文件..我得到了
项目Project2.exe引发异常类EAccessViolation,并在模块'Project2.exe'中显示消息'地址00408D0C处的访问冲突'.读取地址00000001'.流程停止了.使用"步骤"或"运行"继续.
我首先使用了
Image1.Picture.Bitmap.LoadFromResourceID(hInstance,1);
Run Code Online (Sandbox Code Playgroud)
因为这是我用谷歌发现的.我收到了这个错误.后来我试过了
procedure TForm1.Image1Click(Sender: TObject);
var bBitmap : TBitmap;
begin
bBitmap := TBitmap.Create;
try
bBitmap.Handle := LoadBitmap(hInstance, '1');
Image1.Width := bBitmap.Width;
Image1.Height := bBitmap.Height;
Image1.Canvas.Draw(0,0,bBitmap);
finally
bBitmap.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
这没有给我带来任何错误,也没有显示图像所以问题仍未解决.
我是使用资源的新手,但我必须在发布项目之前将一些图像加载到资源中,以便.BMP文件不会被调整...
任何帮助将非常感谢!
所以...我需要从"notepad.exe"进程中获取peb,有人知道如何制作它吗?
我正在尝试使用"GetModuleHandle"API,但是...不会返回指针(每次都返回零),因为我必须是该模块的调用者进程.
出于这个原因,我想知道如何使用"EnumProcessModules"或"CreateToolhelp32Snapshot"来获取它.
如果有人知道请告诉我如何,提前谢谢!
delphi ×9
automation ×2
delphi-7 ×2
ole ×2
api ×1
bitmap ×1
c# ×1
contextmenu ×1
delphi-xe ×1
excel ×1
fastmm ×1
image ×1
memory-leaks ×1
ms-word ×1
path ×1
resources ×1
stack-trace ×1
tabcontrol ×1
tabpage ×1
transparency ×1
winapi ×1
winforms ×1