小编ELC*_*ouz的帖子

Delphi回调?

我想知道是否可以实现这样的事情:

procedure waitandcall(time,@MyProcedureOrFunction)

执行我创建的功能或程序?

我不确定它们是否被称为回调.

delphi procedure function callback

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

如何修复程序循环引用?

我是Delphi编程场景的新手,我在控制台应用程序中调用过程时遇到问题.

我的简单应用程序是通过Windows上的telnet服务器运行的项目库存.我使用旧的thinkpad作为我的瘦客户端运行linux和telnet客户端.

使用Delphi XE我遇到了鸡或蛋的情况.

我得到了addscreen未声明的标识符...它被声明但是在主屏幕下!如果我把addscreen程序放在主屏幕上,那么在addscreen程序中对mainscreen进行的任何调用都会让我误认为是unclared标识符主屏幕!

简单来说,如何让程序在程序中到处调用?

我已经尝试过接口和实现,但它在控制台应用程序中无效!

program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils, windows, messages, Console in 'Console.pas';


procedure mainscreen;
var
  choice: string;
begin
  clrscr;
  writeln(' ------------------------------------------------------------------------------------------------------------------------------');
  writeln(' |                                     Inventory Management 0.1 ALPHA                                                         |');
  writeln(' ------------------------------------------------------------------------------------------------------------------------------');
  writeln('');
  writeln('');
  writeln('');
  writeln('');
  writeln('');
  writeln(' Make a choice: Add(a), Remove(r), Edit(e), Backup Database(bd), Mass Add(ma), Mass Remove(mr)');
  writeln('?:');
  readln(choice);

  if choice = 'a' then 
    addscreen
  else 
    mainscreen;
end;

procedure addscreen;
var
  choice: string;
begin
  clrscr;
  writeln(' ------------------------------------------------------------------------------------------------------------------------------');
  writeln(' |                                                     Add an Item                                                            |'); …
Run Code Online (Sandbox Code Playgroud)

delphi procedure circular-reference

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

一次性定时器

亲爱的德尔福程序员,

我正在寻找帮助如何编写一次性定时器(没有GUI,所以VCL定时器无可置疑)......

让我再解释一下.

在我的代码中(用VCL计时器解释但在这个特定项目中我没有表格):

  1. 调用procedure通过串口发送char的a
  2. 启用X量为的计时器 Interval

OnTimer事件中:

我有一个代码发送一个字符然后禁用计时器本身永远不会再次执行.

问题是我需要使这些计时器的创建动态化.我想到了函数SetTimer()然后KillTimer()在"OnTimer事件"中禁用它(释放它).

这是一种好的(安全的)方式吗?

谢谢!

delphi serial-port timer command-line-interface

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

Windows中的计时器

我遇到 SetTimer API 的问题.

只是为了好奇,Delphi中我的其他选择是什么?

windows delphi timer

5
推荐指数
1
解决办法
920
查看次数

SetTimer生成一个随机的IDEvent

当我尝试使用Windows SetTimer函数时,它会为计时器生成一个IDEvent,即使我已经指定了一个!

这个:

SetTimer(0,999,10000,@timerproc); 
Run Code Online (Sandbox Code Playgroud)

在:

procedure timerproc(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR;dwTime: DWORD); stdcall;
begin
KillTimer(0, idEvent);
showmessage(inttostr(idevent));
end;
Run Code Online (Sandbox Code Playgroud)

返回:

随机数!

是否可以自己管理我的计时器而不是Windows为我选择?

非常感谢你!

windows delphi api timer

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

在 Delphi 中正确调用外部 dll?

我知道一些 Delphi 的基础知识(实际上我已经使用它几年了)......

我正在用 DLL 撞墙(从来没有真正玩过这个)。

考虑这个例子:

   unit Unit1;

interface

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

Type FT_Result = Integer;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


var
  Form1: TForm1;
  FT_HANDLE : DWord = 0;



implementation

{$R *.dfm}

function I2C_GetNumChannels(numChannels: dword):FT_Result; stdcall; external 'libmpsse.dll' name 'I2C_GetNumChannels';
function I2C_OpenChannel(index:dword;handle:pointer):FT_Result; stdcall; external 'libmpsse.dll' name 'I2C_OpenChannel';

procedure TForm1.Button1Click(Sender: TObject);
var
numofchannels:dword;
begin
i2c_getnumchannels(numofchannels);
showmessage(inttostr(numofchannels));
end; …
Run Code Online (Sandbox Code Playgroud)

delphi usb dll i2c ftdi

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

加入16位整数在Delphi中制作32位?

我想知道Delphi中Make32函数的等价物是什么?

见附图...


在此输入图像描述

c delphi integer

0
推荐指数
2
解决办法
328
查看次数