unigui的session【1】
1.unidbgrid的rowedit=true2.unigui的demo-\Demos\Desktop\DBAppDemo\SimpleDemo.dproj【11】
3.unigui的session【1】
4.unigui菜单【3】5.unigui的ini文件读写【6】6.unigui导出TMS.Flexcel【5】7.unigui+fastreport 打印【4】8.unigui显示uniTreeVview使用TUniTreeNode内存泄漏的问题【14】9.unigui显示websocket服务端向客户端发送信息【15】10.学习unigui【17】-数据集和JSON互相转换-DataSetConverter4D 开源项目11.学习unigui【18】unidbgrid的GridsGroupingSorting12.学习unigui【19】unidbgrid的Group By This Field汉化13.学习unigui【20】unistringGrid14.学习unigui【21】unistringGrid的标题栏动态增加15.学习unigui【22】unistringGrid的标题栏双击事件16.学习unigui【23】uniDBGrid的使用摘要17.学习unigui【25】关于图标18.学习unigui【24】Echart的使用:多个坐标系19.学习unigui【26】关于Unigui控件的个性化CSS框架20.学习unigui【27】像pg的jsonb一样编辑json。21.unigui的菜单树补习【2】treeview22.unigui的程序编译后自动运行傻傻的手动【7】23.unigui的ServerModule的重要属性【8】24.unigui的错误delphi clientHeight:property clientheight does not exist【10】25.学习unigui【28】UniGUI接收POST/GET目前是1394。
明白session如何使用管理,看demo Session List和SessionTimeout

unit Main; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uniGUITypes, uniGUIAbstractClasses, uniGUIClasses, uniGUIRegClasses, uniGUIForm, uniGUIBaseClasses, uniButton, DB, DBClient, uniBasicGrid, uniDBGrid; type TUniSessionInfoRec = record ASessionId : string; AIP : string; AMyVar : string; ALastTime: TDateTime; end; TMainForm = class(TUniForm) UniButton1: TUniButton; ClientDataSet1: TClientDataSet; DataSource1: TDataSource; ClientDataSet1SessionId: TStringField; ClientDataSet1IP: TStringField; ClientDataSet1LastTime: TDateTimeField; UniDBGrid1: TUniDBGrid; ClientDataSet1MyVar: TStringField; procedure UniButton1Click(Sender: TObject); procedure UniFormCreate(Sender: TObject); { Private declarations } public { Public declarations } ASessionList : array of TUniSessionInfoRec; end; function MainForm: TMainForm; implementation {$R *.dfm} uses uniGUIVars, MainModule, uniGUIApplication, uniGUISessionManager, ServerModule; function MainForm: TMainForm; begin Result := TMainForm(UniMainModule.GetFormInstance(TMainForm)); end; procedure TMainForm.UniButton1Click(Sender: TObject); var S : TUniGUISessions; U : TUniGUISession; I : Integer; begin S := UniServerModule.SessionManager.Sessions; S.Lock; // Using Lock on session manager should be used with extreme care. // We should keep the "Lock duration" as short as we can. Session Manager stops working until lock is released. // Excessive use of lock/unlock or keeping the lock active for a long period will make uniGUI server slow/unresponsive. try SetLength(ASessionList, S.SessionList.Count); // Here we do a fast copy of list to another array for later use. for I := 0 to S.SessionList.Count - 1 do begin U := S.SessionList[I]; ASessionList[I].ASessionId := U.SessionId; ASessionList[I].AIP := U.RemoteIP; ASessionList[I].ALastTime := U.LastTimeStamp; if U.UniMainModule <> nil then // Check mainModule availability. Some sessions may not have a MainModule instance ASessionList[I].AMyVar := (U.UniMainModule as TUniMainModule).FMyStringVar; // Access custom MainModule props end; finally S.Unlock; // ... and finally don't forget to release lock! end; ClientDataSet1.EmptyDataSet; for I := Low(ASessionList) to High(ASessionList) do begin ClientDataSet1.Append; ClientDataSet1.FieldByName('sessionid').AsString := ASessionList[I].ASessionId; ClientDataSet1.FieldByName('ip').AsString := ASessionList[I].AIP; ClientDataSet1.FieldByName('lasttime').AsDateTime := ASessionList[I].ALastTime; ClientDataSet1.FieldByName('myvar').AsString := ASessionList[I].AMyVar; ClientDataSet1.Post; end; end; procedure TMainForm.UniFormCreate(Sender: TObject); begin UniMainModule.FMyStringVar := TimeToStr(Now); end; initialization RegisterAppFormClass(TMainForm); end.
注意代码中的注释
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报