Delphi注解(不是注释)
开发环境Delphi XE10

1 unit Unit1;
2
3 interface
4
5 uses
6 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
7 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.RTTI, Vcl.StdCtrls;
8
9 type
10 TForm1 = class(TForm)
11 Button1: TButton;
12 procedure Button1Click(Sender: TObject);
13 private
14 { Private declarations }
15 public
16 { Public declarations }
17 end;
18 type
19 TMyAttribute = class(TCustomAttribute)
20 private
21 FValue: string;
22 public
23 constructor Create(v: string); //带RTTI信息的Attributes时,必须要实现自定义的构造器
24
25 property Value: string Read Fvalue Write FValue;
26 end;
27 //然后就可以用来注释了,简单的注释操作如下
28 [TMyAttribute('Msg')]
29 MyRec = record
30 R_str:string;
31 end;
32 var
33 Form1: TForm1;
34
35 implementation
36
37 {$R *.dfm}
38 function GetMyRecAttr: string;
39 var
40 LContext: TRttiContext;
41 LType: TRttiType;
42 LAttr: TCustomAttribute;
43 begin
44 LContext := TRTTIContext.Create; //创建上下文对象
45 LType := LContext.GetType(TypeInfo(MyRec));//获取MyRec的类型信息
46 try
47 for LAttr In LType.GetAttributes() do //遍历MyRec中的Attributes
48 if LAttr is TMyAttribute then
49 ShowMessage(TMyAttribute(LAttr).value);
50 except
51 ShowMessage('读取失败');
52 end;
53 end;
54 { TMyAttribute }
55
56 constructor TMyAttribute.Create(v: string);
57 begin
58 FValue:='AAAAAAAAAAA+'+v;
59 end;
60
61 procedure TForm1.Button1Click(Sender: TObject);
62 begin
63 GetMyRecAttr;
64 end;
65
66 end.
1 object Form1: TForm1
2 Left = 0
3 Top = 0
4 Caption = 'Form1'
5 ClientHeight = 130
6 ClientWidth = 288
7 Color = clBtnFace
8 Font.Charset = DEFAULT_CHARSET
9 Font.Color = clWindowText
10 Font.Height = -11
11 Font.Name = 'Tahoma'
12 Font.Style = []
13 OldCreateOrder = False
14 Position = poDesktopCenter
15 PixelsPerInch = 96
16 TextHeight = 13
17 object Button1: TButton
18 Left = 96
19 Top = 48
20 Width = 75
21 Height = 25
22 Caption = 'Button1'
23 TabOrder = 0
24 OnClick = Button1Click
25 end
26 end
Delphi注解(不是注释)的更多相关文章
- delphi 属性 参数 新注释
delphi 属性 参数 新注释,在写代码的时候,可以自动看到属性.参数的的备注说明,太方便了. Tmyclass=class /// <summary> /// 姓名 /// </ ...
- Spring 注解注入—@Qualifier 注释
当创建多个具有相同类型的 bean 时,并且想要用一个属性只为它们其中的一个进行装配,在这种情况下,你可以使用 @Qualifier 注释和 @Autowired 注释通过指定哪一个真正的 bean ...
- Java 注释类之常用元注解
Java 注释类之常用元注解 自定义Java注释类时,我们使用方式如下: @Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD ...
- [转帖]java注解与注释注解区别
https://baijiahao.baidu.com/s?id=1615942718081024481&wfr=spider&for=pc 还需要仔细看一下书的 书里面都有. jav ...
- Java核心技术点之注解
本博文是对Java中注解相关知识点的简单总结,若有叙述不清晰或是不准确的地方,希望大家可以指正,谢谢大家:) 一.什么是注解 我们大家都知道Java代码中使用注释是为了向以后阅读这份代码的人解释说明一 ...
- JSTL标签库中<c:choose></c:choose>不能放JSP页面<!-- -->注释
笔者最近在使用JSTL标签库的<c:choose>标签时候,发现在该标签体中加了JSP的<!-- -->注释时,总是会显示报错信息.错误的信息如下: <span styl ...
- Java编程思想学习(十五) 注解
注解Annotation又叫元数据,是JDK5中引入的一种以通用格式为程序提供配置信息的方式.使用注解Annotation可以使元数据写在程序源码中,使得代码看起来简洁,同时编译器也提供了对注解Ann ...
- java自定义注解注解方法、类、属性等等【转】
http://anole1982.iteye.com/blog/1450421 http://www.open-open.com/doc/view/51fe76de67214563b20b385320 ...
- 【JAVAWEB学习笔记】25_基础加强:类加载器、注解 @xxx和动态代理
基础加强 学习目标 案例-自定义单元测试@MyTest 案例-全局的编码的解决 一.类加载器 1.什么是类加载器,作用是什么? 类加载器就加载字节码文件(.class) 2.类加载器的种类 类加载器有 ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——S ...
随机推荐
- vue-awesome-swiper使用中的一些问题
项目中使用了vue-awesome-swiper,发现autoplay不能用.网上找了半天,说是版本问题.最后在main.js中添加以下代码解决. import VueAwesomeSwiper fr ...
- disp
str = sprintf( 'Best Cross Validation MSE = %g Best c = %g Best g = %g',bestmse,bestc,bestg); disp(s ...
- Redis之Redis缓存管理机制
Redis缓存管理机制 目录 Redis缓存管理机制 缓存过期 && 缓存淘汰 缓存穿透 && 布隆过滤器 缓存击穿 && 缓存雪崩 总结 彩蛋 从博客 ...
- pytorch MNIST加载已下载的数据集出现问题及解决方法
import torch import torch.nn as nn from torch.autograd import Variable import torchvision import tor ...
- 【1】java之类与对象
一.前言 面向对象就是一种组件化的设计思想. 面向对象特性 封装性:保护内部的定义结构安全性: 继承性:在已有的程序结构上继续扩充新的功能: 多态性:在某一个概念范围内的满足. 二.类与对象的定义和使 ...
- 记录php遇到的那些坑
首先按照网上指南搭建php.阿帕奇.数据库环境. 具体放上网站 http://www.cnblogs.com/ypr-09-23/p/10797153.html 这是mysql安装指南 需要注意的是 ...
- SignalR基本认识以及使用
SignalR基本认识以及使用 什么是WebSocket.SignalR WebSocket 1.WebSocket基于TCP协议,支持二进制通信,双工通信. 2.性能和并发能力更强. 3.WebSo ...
- Mac怎么安装Andriod模拟器
Mac上怎么安装 Andriod 系统模拟器?有的朋友可能需要在自己用的 Mac 电脑上安装Andriod 系统模拟器,用于开发或测试一些安卓软件.介绍下怎么在 Mac 上用 Parallels De ...
- 使用vue3在element plus中在el-table中拖拽
1.安装 vuedraggable npm i -S vuedraggable 2.在使用的组件,引入.sortablejs包含在vuedraggable import Sortable from & ...
- Windows MFC HTTP 函数流程
Windows MFC HTTP 函数流程 1 //建立连接 2 pInternetSession = new CInternetSession(AfxGetAppName()); 3 4 5 6 / ...