delphi中的函数传参如何传枚举参数?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中的函数传参如何传枚举参数?相关的知识,希望对你有一定的参考价值。
例如: 一个窗体 声明一个枚举 type zType=(eLeading=1,rTrailing=2); 然后想用写一个函数 function getnum(sss:zType):integer;这个函数的传递的参数想用枚举类型、但是编译不过去、不识别zTypedelphi里面如何处理这样的问题?
unit Unit1;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
Private declarations
public
Public declarations
end;
var
Form1: TForm1;
implementation
type
MyFont=(st,xt,ht); //定义枚举类型
var
ft:MyFont; //定义枚举类型变量
$R *.dfm
Function ffont(fft:MyFont):String;//自定义函数
begin
case fft of
st:ffont:='宋体';
xt:ffont:='楷体_GB2312';
ht:ffont:='黑体';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption='宋体' then
begin
ft:=st;
Edit1.Font.Name:=ffont(ft); //调用函数,使文本变为宋体
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Button2.Caption='楷体' then
begin
ft:=xt;
Edit1.Font.Name:=ffont(ft);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if Button3.Caption='黑体' then
begin
ft:=ht;
Edit1.Font.Name:=ffont(ft);
end;
end;
end.
你看上面的代码枚举可以作为函数的参数的
继续追问:
delphi如何把枚举类型转换为String类型输出?
_GetZeroType('C:\test.txt'); 其中我的_GetZeroType是一个函数 返回的是一个枚举类型。
我想打印出来测试一下是否正确、但是如何转换为String类型的打出来?
定义的枚举type ZeroType=(eLeading=1,rTrailing=2);
函数实现的功能、
function _GetZeroType(_tmpDRLFileName:string):ZeroType;
var
intLocal:Integer;
saveEdit:TStringList;
strBuffer:String;
begin
If Not FileExists(_tmpDRLFileName) Then exit;
Try
saveEdit:=TStringList.Create;
saveEdit.LoadFromFile(_tmpDRLFileName);
strBuffer:=saveEdit.CommaText;
intLocal:=Pos(strBuffer,'X0');
if intLocal=0 then
begin
intLocal:=Pos(strBuffer,'Y0');
if intLocal=0 then
Result:=eLeading
else
Result:=rTrailing;
end
else
begin
Result:=eLeading;
end;
Finally
saveEdit.Free;
end;
end; 参考技术A unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
zType=(eLeading=1,rTrailing=2);
TForm1 = class(TForm)
btn1: TButton;
OpenDialog1: TOpenDialog;
Edit1: TEdit;
procedure btn1Click(Sender: TObject);
private
procedure test(a:zType);
Private declarations
public
Public declarations
end;
var
Form1: TForm1;
implementation
$R *.dfm
procedure TForm1.btn1Click(Sender: TObject);
var
a:zType;
begin
a:=zType(2);
test(a);
end;
procedure TForm1.test(a: zType);
begin
case a of
eLeading:ShowMessage('eLeading');
rTrailing:ShowMessage('rTrailing');
end;
end;
end.
函数传参
函数传参
1、(*args) : *可变参数,多个参数时可写*名字,可以不传 ,可以传多个参数
2、(name="None") 可以不传,默认值参数
3、(**kwargs) 字典格式 key:values格式 关键字参数 (**info): kwargs可以随意起名字
4、(word) 位置参数,必传参数
注意:使用顺序为:必填参数、默认值参数、可变参数、关键字参数
eg:def t1(word,name="None",*args,**kwargs)
以上是关于delphi中的函数传参如何传枚举参数?的主要内容,如果未能解决你的问题,请参考以下文章