小编Dev*_*Dev的帖子

DLL中的VCL样式问题

我开发了一个具有一种形式的DLL.我使用下面的代码为它设置了一个样式.

library TestLib;

uses Vcl.Themes, Vcl.Styles,....
.
.
exports
   function1,
   function2;

begin
   TStyleManager.TrySetStyle('Style1');
end.
Run Code Online (Sandbox Code Playgroud)

当我加载此DLL并调用function1打开此窗体.表单打开时应用了样式.

现在,当我最小化该窗口时,我收到了访问冲突.包括Maximize&Restore在内的一切都运行良好.此外,所有功能都正常.

我想这不是处理由此表单的Minimize事件生成的消息.请指教.

注意:当我删除样式时,一切正常.

Call Stack

:0976742b TWinControl.HandleNeeded + $3
:0978ad8a TStyleManager.HandleMessage + $56
:09762a3c TWinControl.DoHandleStyleMessage + $14
:0972e6be TCustomForm.WndProc + $612
:09763c2b TWinControl.MainWndProc + $2F
Run Code Online (Sandbox Code Playgroud)

更新:SSCCE

Project1.EXE(有一个表单Unit1.pas/dfm)

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function InitDLL: Boolean;
  end; …
Run Code Online (Sandbox Code Playgroud)

delphi dll delphi-xe2 vcl-styles

8
推荐指数
1
解决办法
2604
查看次数

使已开发的应用程序64位启用

可能重复:
迁移到Delphi 2010和Unicode时如何准备64位

我已经在Delphi 7中开发了一个应用程序.现在我需要启用它来支持64位.

delphi 64-bit delphi-7

6
推荐指数
1
解决办法
1881
查看次数

可以在Win 7上安装Delphi 7吗?

我计划将我的操作系统升级到Win 7(32位或64位).我想知道我们是否可以成功安装和运行Win 7上的Delphi 7.分享您对安装第三方组件的想法.这有助于我做出有关操作系统升级的决定.

delphi installation delphi-7 windows-7

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

如何在TImage控件中加载和显示tiff图像?

我目前正在研究Delphi XE2试用版.我想在TImage控件中加载和显示TIFF图像,而不使用任何第三方组件/库.

我尝试下面的代码,但它不是为我而烦恼.

Procedure TForm1.Button1Click(Sender: TObject); 
Var 
     OleGraphic               : TOleGraphic; 
     fs                       : TFileStream; 
     Source                   : TImage; 
     BMP                      : TBitmap; 
Begin 
     Try 
          OleGraphic := TOleGraphic.Create; 

          fs := TFileStream.Create('c:\testtiff.dat', fmOpenRead Or fmSharedenyNone); 
          OleGraphic.LoadFromStream(fs); 

          Source := Timage.Create(Nil); 
          Source.Picture.Assign(OleGraphic); 

          BMP := TBitmap.Create; 
          bmp.Width := Source.Picture.Width; 
          bmp.Height := source.Picture.Height; 
          bmp.Canvas.Draw(0, 0, source.Picture.Graphic); 

          image1.Picture.Bitmap := bmp;
     Finally 
          fs.Free; 
          OleGraphic.Free; 
          Source.Free; 
          bmp.Free; 
     End; 
End;
Run Code Online (Sandbox Code Playgroud)

请指教.

delphi tiff delphi-xe2

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

Application.terminate可以导致内存泄漏吗?

有一次,我必须使用Application.Terminate终止在Delphi XE2中开发的应用程序.

我想确认一下,由于这个会有任何记忆丧失吗?如果是的话,我需要处理的所有可能情况是什么?以及如何解决这些问题?

delphi memory-leaks delphi-xe2

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