注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

鑫淼梦园的博客

圆你的梦想 从这里开始

 
 
 

日志

 
 

delphi中的函数传参如何传枚举参数?  

2012-11-07 19:38:13|  分类: delphi xe2 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

unit Unit1;
  interfaceuses  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 Result := eLeading;                    
  Finally          
    saveEdit.Free;    
  end;
end;


  评论这张
 
阅读(360)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017