小编Jus*_*tMe的帖子

如何从边框图标中检测出近距离的形式?

我的表单中有取消和确定按钮.他们都做了一些事情,然后打电话给他们.如何在表单上设置[x]按钮来调用Cancelclick?

delphi delphi-2010

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

在设计模式下获取TDataModule

如何在设计模式(组件编写)中获取所有创建的对象(TDataModule类型)?

delphi datamodule delphi-2010

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

在delphi中编写Client-Server应用程序

在delphi下编写客户端 - 服务器应用程序的最佳方法是什么?我知道有一种DataSnap技术,但它不是专业版.您有任何可以分享的经验吗?

delphi client-server delphi-2010

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

TDataModule继承

当我试图继承TDataModule时,Delphi将后代类视为一种形式,为它们提供字体和客户端属性等属性.(运行时"属性不存在"异常)

TixDataModule = class(TDataModule);

TDM = class(TixDataModule)
end;
Run Code Online (Sandbox Code Playgroud)

我能做些什么才能让它发挥作用?

delphi datamodule delphi-2010

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

StrToDate()没有参数化的TFormatSettings会抛出AV吗?

只是为了好奇:为什么这段代码给出AV而不是抛出异常?

procedure TForm1.Button1Click(Sender: TObject);
var fs: TFormatSettings;
begin
  strtodate('2011-01-01', fs);
end;
Run Code Online (Sandbox Code Playgroud)

delphi

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

Inno设置命令行进度

当我从命令行编译器(iscc.exe)执行inno脚本时,如何取得进展?

我可以管道输出,但我想完成%完成.

delphi inno-setup

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

Delphi中的接口多态性

我有两个接口来自antoher:

type
  ISomeInterface = interface
    ['{5A46CC3C-353A-495A-BA89-48646C4E5A75}']
  end;

  ISomeInterfaceChild = interface(ISomeInterface)
    ['{F64B7E32-B182-4C70-A5B5-72BAA92AAADE}']
  end;
Run Code Online (Sandbox Code Playgroud)

现在我有一个参数是ISomeInterface的过程,如:

procedure DoSomething(SomeInterface: ISomeInterface);
Run Code Online (Sandbox Code Playgroud)

我想检查SomeInterface是否是ISomeInterfaceChild.IsDelphi 7中的接口不支持operator,我也不能Supports在这里使用.我能做什么?

delphi oop interface delphi-7

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

动态加载exe文件

我正在尝试从我的程序动态加载exe文件,并从该动态加载的exe运行SomeProcedure.这是我在加载的exe - library.exe中所做的事情

interface    

procedure SomeProcedure; stdcall;

implementation    

procedure SomeProcedure;
begin
  ShowMessage('Ala has a cat');
end;
Run Code Online (Sandbox Code Playgroud)

这是我的exe加载的library.exe并尝试从它运行SomeProcedure.

type
  THandle = Integer;
  TProc = procedure();

var
  AHandle: THandle;
  Proc: TProc;

procedure TForm1.Button1Click(Sender: TObject);
begin
  AHandle := LoadLibrary('library.exe');
  if AHandle <> 0 then begin
    @Proc := GetProcAddress(AHandle, 'SomeProcedure');
    if @Proc <> nil then 
      try    
        Proc;
      finally
        FreeLibrary(AHandle);
      end;
    end;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用 - AHandle有一个地址,但GetProcAddress总是返回nil.我究竟做错了什么?

windows delphi dll delphi-7

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

如何在运行时获取包名称/版本

我正在运行时加载包LoadPackage().让我们说加载后我想检查包的版本,以确保它是最新的.我怎样才能做到这一点?

delphi delphi-xe2

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

将多个对象作为一个参数传递

我想以最小的努力将多个对象作为一个参数传递.

我有一些类型

TOpenMode = [omNew, omEdit, omBrowse] 
Run Code Online (Sandbox Code Playgroud)

和一个程序

procedure OpenForm(Form: TForm; ANewWindow: boolean = false; 
                   Datasets: TUniDataSet; TableOpenMode: TOpenMode);
Run Code Online (Sandbox Code Playgroud)

我想传递多个数据集.没有数组或创建新对象,我可以这样做吗?如何让它们成对传递[UniTable1, TOpenMode], [UniTable2, TOpenMode]

delphi oop delphi-xe2

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