delphi 菜单授权

这是一个使用 Delphi 开发的菜单权限管理程序,通过 TreeView 控件模拟多态选择状态,实现了用户权限的查看和设置。程序包括初始化 TreeView 状态、菜单树结构的构建、以及权限保存和加载等功能。
摘要由CSDN通过智能技术生成
初学delphi时做的,模仿白貂的用pb开发的那个框架,代码很垃圾,有时间在重新整理吧
treeview用3个图片,模仿checkbox的三态

授权窗口
unit YHGL;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ImgList,menus,common, DB, ADODB;

type
  Tyonghuguanli 
=   class (TForm)
    TreeView1: TTreeView;
    Panel1: TPanel;
    Label3: TLabel;
    Label4: TLabel;
    Splitter1: TSplitter;
    ImageList1: TImageList;
    ListBox1: TListBox;
    TreeView2: TTreeView;
    qryright: TADOQuery;
    procedure Label4Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TreeView2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure TreeView2MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure TreeView1Click(Sender: TObject);
    procedure Label3Click(Sender: TObject);
  
private
    
{ Private declarations }
  
public
    
{ Public declarations }
  end;
  procedure IniTVStates(tv1:TTreeView);
var
  yonghuguanli: Tyonghuguanli;

implementation
 uses jxcmain;
{$R *.dfm}
const
  cFlatUnCheck 
=   1 ;
  cFlatChecked 
=   2 ;
procedure IniTVStates(tv1:TTreeView);                  
// 初始treeview选择状态
  procedure IniTVNodeStates(node:TTreeNode);
  var
    i:Integer;
  begin
    
if  node.Count  >   1  then
    begin
      
for  i : =   0  to node.Count  -   1   do
      begin
         
if  yonghuguanli.qryright.Locate( ' item_text ' ,node[i].Text,[loCaseInsensitive]) then
         node[i].StateIndex :
=  yonghuguanli.qryright.fieldbyname( ' abled ' ).AsInteger
         
else
         node[i].StateIndex :
=   2 ;
         
if  node[i].Count  >   1  then IniTVNodeStates(node[i]);
      end;
    end;
  end;
var
  node:TTreeNode;
begin
  tv1.Items.BeginUpdate;
  node :
=  tv1.Items.GetFirstNode;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值