惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 【当耐特】
K
Kaspersky official blog
V
Vulnerabilities – Threatpost
Hacker News - Newest:
Hacker News - Newest: "LLM"
Security Archives - TechRepublic
Security Archives - TechRepublic
S
Secure Thoughts
I
Intezer
TaoSecurity Blog
TaoSecurity Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Spread Privacy
Spread Privacy
A
About on SuperTechFans
NISL@THU
NISL@THU
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
S
Security @ Cisco Blogs
S
SegmentFault 最新的问题
G
Google Developers Blog
B
Blog
N
News and Events Feed by Topic
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
V2EX - 技术
V2EX - 技术
V
Visual Studio Blog
MyScale Blog
MyScale Blog
Webroot Blog
Webroot Blog
Vercel News
Vercel News
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
S
Security Affairs
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Stack Overflow Blog
Stack Overflow Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
博客园 - 叶小钗
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Know Your Adversary
Know Your Adversary
T
Tailwind CSS Blog
F
Fortinet All Blogs
D
DataBreaches.Net
博客园 - Franky
博客园_首页
H
Heimdal Security Blog
宝玉的分享
宝玉的分享
阮一峰的网络日志
阮一峰的网络日志
Attack and Defense Labs
Attack and Defense Labs
Project Zero
Project Zero
雷峰网
雷峰网

博客园 - 云水浮萍

结构体和类中属性定义需要static地方 十万个为什么收集 群里人问的消息切换分页问题,我就标记一下 AnsiString类型定义的时候可以直接指定代码页,比如950繁体字,936日文 CopyMemory Move使用笔记 System.Length 函数 Delphi Helper Record Class 向量定义笔记 关于日期与字符串转换时出错的分隔符,小记一下容易忘记 类型与泛型标记 http://docwiki.embarcadero.com/RADStudio/XE7/en/Delphi_Data_Types Delphi中GUID相等检查中经典指针应用 test是否被执行? 每次看到某个数据结构的时候,有两个指针,一个起始,一个结束,一直没想明白为何是起始与结束,不是起始加数量,是怎么操作的? 给自己一个书单 pureMVC学习之一 泛型与无聊 猫儿山之行计划书 一个错误,一个教训,关于堆栈平衡 - 云水浮萍 - 博客园
队列与DelphiXe新语法
云水浮萍 · 2014-12-20 · via 博客园 - 云水浮萍
好久没写代码了,更久没上博客园的博客了,无聊写几行试一下新语法。

1

unit Main; 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, Vcl.StdCtrls, Vcl.ComCtrls, 8 9 iHome.Helper.Telegram, 10 Generics.Collections; 11 12 type 13 TMainForm = class(TForm) 14 ListView_Queue: TListView; 15 btEnQueue: TButton; 16 btDeQueue: TButton; 17 procedure btEnQueueClick(Sender: TObject); 18 private 19 { Private declarations } 20 FPriorityQueue:TQueue<PTelegram>; 21 22 procedure SetupListView(ListView:TListView); 23 procedure ViewQueue(ListView:TListView;PriorityQueue:TQueue<PTelegram>); 24 public 25 { Public declarations } 26 end; 27 28 var 29 MainForm: TMainForm; 30 31 implementation 32 33 {$R *.dfm} 34 35 36 procedure TMainForm.SetupListView(ListView: TListView); 37 procedure SetupListViewColumns(Columns:TListColumns); 38 begin 39 Columns.Clear; 40 TListColumn(Columns.Add).Caption:='Caption'; 41 TListColumn(Columns.Add).Caption:='Message'; 42 TListColumn(Columns.Add).Caption:='Sender'; 43 TListColumn(Columns.Add).Caption:='Receiver'; 44 TListColumn(Columns.Add).Caption:='DispatchTime'; 45 TListColumn(Columns.Add).Caption:='ExtraInfo'; 46 end; 47 begin 48 ListView.ViewStyle:=vsReport;//报表格式显示 49 SetupListViewColumns(ListView.Columns); //设置显示列名 50 end; 51 52 procedure TMainForm.ViewQueue(ListView:TListView;PriorityQueue:TQueue<PTelegram>); 53 var 54 FpTelegram:PTelegram; 55 procedure ViewQueueItem(ListItem:TListItem); 56 begin 57 with ListItem do 58 begin 59 Caption := IntToStr(FpTelegram^.msg); 60 SubItems.Add(IntToStr(FpTelegram^.msg)); 61 SubItems.Add(IntToStr(FpTelegram^.Sender)); 62 SubItems.Add(IntToStr(FpTelegram^.Receiver)); 63 SubItems.Add(IntToStr(FpTelegram^.DispatchTime)); 64 SubItems.Add(IntToStr(FpTelegram^.ExtraInfo)); 65 end; 66 end; 67 begin 68 try 69 ListView.Items.BeginUpdate; 70 ListView.Clear; 71 SetupListView(ListView);//设置ListView显示设置 72 for FpTelegram in PriorityQueue do ViewQueueItem(ListView.Items.Add);//显示队列项目 73 finally 74 ListView.Items.EndUpdate 75 end; 76 end; 77 78 procedure TMainForm.btEnQueueClick(Sender: TObject); 79 var 80 FTelegram:PTelegram; 81 82 function MakerQueue(Max:Integer):TQueue<PTelegram>; 83 var 84 i:Integer; 85 begin 86 Result:=TQueue<PTelegram>.Create;//创建优先队列 87 for I := 0 to Max do 88 begin 89 New(FTelegram); 90 with FTelegram^ do 91 begin 92 DispatchTime:=GetTickCount; 93 Sender:=Self.Handle; 94 Receiver:=Self.Handle; 95 Msg:=i; 96 ExtraInfo:=0; 97 end; 98 Result.Enqueue(FTelegram);//入队 99 end; 100 end; 101 102 begin 103 if FPriorityQueue=nil then 104 FPriorityQueue:=MakerQueue(15);//创建15个队列项目 105 ViewQueue(ListView_Queue,FPriorityQueue);//ListView显示队列 106 end; 107 108 end.