高分求助一个自定义函数,请诸位帮帮忙好吗?(100分)

  • 主题发起人 主题发起人 fjw
  • 开始时间 开始时间
F

fjw

Unregistered / Unconfirmed
GUEST, unregistred user!
各位编程高手:
如果我定义如下:
var tempstring:string;
begin
tempstring:='gz<0 and gz>100';
gz:=adotable1.fieldbyname('gz').value;
if 自定义函数(tempstring) then
showmessage('这个值是错误的,请重输入!');
end;
 
unit Unit1;

interface

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

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

var
Form1: TForm1;

implementation

{$R *.dfm}

function TForm1.ControlWin2K(timer:string): Boolean;
begin
if timer<>'abc' then
result := true
else
result := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if ControlWin2K('abcd') then
showmessage('这个值是错误的,请重输入!');
end;

end.
 
unit Unit1;

interface

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

type
TTestProc=Function (aMsg:string):boolean;
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure text(proc:TTestProc);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
Function Check(aMsg:string):boolean ;
begin
result:=false;
end;

procedure TForm1.text(proc: TTestProc);
var tempstring:string;
begin
tempstring:='gz<0 and gz>100';
if not proc(tempstring) then
showmessage('这个值是错误的,请重输入!');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
text(check);
end;

end.
 
你的问题要说清楚一点.我只能做到上面那样了.
 
能不能说得更清楚些?
 
嘿嘿,真不知道你想干什么?
 
你需要的可能是表达式解析
这个要看你的表达式有多复杂,呵呵
是不是要通用
如果只是gz>0 and gz<100,应该比较简单
 
后退
顶部