小编oxo*_*oxo的帖子

Delphi控件中的Ctrl + Backspace

Ctrl+Backspace键盘快捷键正常删除的话,从插入符左侧.但它不工作在任何标准的德尔福控制你所期望的(TEdit,TMemo,TComboBox等.).有趣的是,Ctrl+Delete工作得很好.

有人知道如何轻松纠正这种行为吗?

我知道重写KeyDown程序会做到这一点,但这是一个相当复杂的事情,因为KeyDown必须为每个组件重写.

delphi vcl

10
推荐指数
1
解决办法
1104
查看次数

Delphi XE2 TZipFile:替换zip存档中的文件

我想用Delphi XE2/XE3标准System.Zip单元替换zip存档中的文件(=删除旧文件并添加新文件).但是没有替换/删除方法.有没有人知道如何在不需要提取所有文件并将其添加到新存档的情况下实现它?

我有这个代码,但如果它已经存在,它会再次添加"document.txt":

var
  ZipFile: TZipFile;
  SS: TStringStream;
const
  ZipDocument = 'E:\document.zip';
begin
  ZipFile := TZipFile.Create; //Zipfile: TZipFile
  SS := TStringStream.Create('hello');
  try
    if FileExists(ZipDocument) then
      ZipFile.Open(ZipDocument, zmReadWrite)
    else
      ZipFile.Open(ZipDocument, zmWrite);

    ZipFile.Add(SS, 'document.txt');

    ZipFile.Close;
  finally
    SS.Free;
    ZipFile.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

注意:我之前使用过TPAbbrevia(完成了这项工作),但我现在想使用Delphi的Zip单元.所以请不要回答"使用其他图书馆"之类的内容.谢谢.

delphi zip delphi-xe2 delphi-xe3

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

当以模态形式创建时,Delphi父窗口保持在其他窗口的顶部

我创建了一个窗口,它应该突出显示窗体上的控件.这个窗口应该不是当父窗体的背后是另一个窗口(试行的Alt + Tab)停留在其他应用程序窗口顶部.除非从模态表单创建红色框架,否则此工作正常.

我想要实现的是,当从模式对话框创建并切换到另一个应用程序时,红框不会停留在其他窗口的顶部.

我想省略PopupParent和PopupMode,因为代码应该在Delphi 7 - XE2中工作(老实说,我尝试使用PopupParent而没有任何成功).

框架未关闭的事实不是问题.

请检查下面的完整源代码(创建一个新的VCL应用程序并替换整个单元文本,不要在表单上放置任何组件).

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics,
  Controls, Forms, Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
  private
    procedure HighlightButton(Sender: TObject);
    procedure CreateModalDialog(Sender: TObject);
  protected
    procedure DoCreate; override;
  end;

  TOHighlightForm = class(TForm)
  private
    fxPopupParent: TCustomForm;
    procedure SetFormLook;
    procedure WMMouseActivate(var Message: TWMMouseActivate); message WM_MOUSEACTIVATE;
    procedure WMNCHitTest(var Message: TWMNCHitTest); message WM_NCHITTEST;
  protected
    procedure Paint; override;
    procedure DoCreate; override;
    procedure Resize; override;
    procedure CreateParams(var Params: TCreateParams); override;
  public
    procedure ShowAt(const …
Run Code Online (Sandbox Code Playgroud)

delphi vcl delphi-7 delphi-xe2

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

标签 统计

delphi ×3

delphi-xe2 ×2

vcl ×2

delphi-7 ×1

delphi-xe3 ×1

zip ×1