求form内button的Enabled属性的通用函数解决思路
求form内button的Enabled属性的通用函数
打开form窗体的时候,根据Form(窗体name)名称,判断button的Enabled属性是否可用,求一通用函数!
------解决方案--------------------
Button.Enabled:= Form.Name=XX
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
数据内有权限表如下
TB1表
{ID button名称(name) Form(窗体name) Enabled属性(1为true,0为FALSE)
49 修改 备货数据查询 1
51 保存 备货数据查询 1
54 报告 备货业务操作 1
55 生成 备货业务操作 1
56 取消 备货业务操作 1
}
打开form窗体的时候,根据Form(窗体name)名称,判断button的Enabled属性是否可用,求一通用函数!
------解决方案--------------------
Button.Enabled:= Form.Name=XX
------解决方案--------------------
TWinControl(self.FindComponent('控件名称')).Enabled := 权限 = 1;
------解决方案--------------------
type参考一下这个。希望对你有帮助!
TForm1 = class(TForm)
ADOQuery1: TADOQuery;
private
procedure setpubrights();
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.setpubrights();
procedure setvalue(Aname:string);
begin
with ADOQuery1 do
begin
if Locate('button名称',Aname,[]) then
TWinControl(self.FindComponent(Aname)).Enabled := FieldByName('Enabled属性').AsInteger = 1;
end;
end;
begin
ADOQuery1.SQL.Text := ' select * from TB1 where Form='+QuotedStr(Self.Name);
ADOQuery1.Open();
with ADOQuery1 do
begin
while eof = False do
begin
setvalue(FieldByName('button名称').AsString);
next;
end;
end;
end;
end.
------解决方案--------------------
......
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.setpubrights(iForm: TForm);
var ADOQuery: TADOQuery;
bt: TComponent;
begin
ADOQuery:=TADOQuery.Create(self);
with ADOQuery do begin
Connection:=ADOConnection1;//假设你的连接控件是 ADOConnection1
SQL.Text := ' select * from TB1 where Form='+QuotedStr(iForm.Name);
Open;
while not eof do begin
bt:=iForm.FindComponent(FieldByName('button名称').AsString);
if bt<>nil then
TButton(bt).Enabled := FieldByName('Enabled属性').AsInteger = 1;
next;
end;
end;
FreeAndNil(ADOQuery);
end;
//应用例子:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2:=TForm2.Create(self);
setpubrights(Form2);
Form2.ShowModal;
FreeAndNil(Form2);
end;
......
------解决方案--------------------