起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 155|回复: 6

【结】[请求]ToolButton按钮一运行变成灰色

[复制链接]
发表于 2010-1-7 12:53:25 | 显示全部楼层 |阅读模式
ToolButton按钮一运行变成灰色,怎么能让它不变
回复

使用道具 举报

发表于 2010-1-7 13:26:03 | 显示全部楼层
请您详细描述下状况。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-7 13:31:34 | 显示全部楼层
可以远程帮我看下吗?282912213
回复 支持 反对

使用道具 举报

发表于 2010-1-7 13:38:34 | 显示全部楼层
人手不足额,您描述下问题吧,或者贴图。我手头有2个并行的工作在做。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-7 13:45:47 | 显示全部楼层
用ToolButton做按钮,运行时变灰色,不能使用,如图

unit CKMLGL;

interface

uses
  Business.System, Business.Model, Business.Forms,HJDAMLGL, Business.Data;

type
  TCKMLGL = class(TForm)
    FuncBroker: TFuncBroker;
    InfoBrokerHJDAMLGL: TInfoBroker;
    ControlBar: TControlBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    DataTreeView1: TDataTreeView;
    Panel: TPanel;
    DocViewWSDAGL_SJWG: TDocView;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    ImageList1: TImageList;
    ImageList: TImageList;
    ActionList: TActionList;
    actNewRoot: TAction;
    actNewChild: TAction;
    actDelNode: TAction;
    actDetailView: TAction;
    DataSetBroker1: TDataSetBroker;
    DataSetBrokertree: TDataSetBroker;
    procedure BizFormShow(Sender: TObject);
    procedure actNewRootExecute(Sender: TObject);
    procedure actNewChildExecute(Sender: TObject);
    procedure actDelNodeExecute(Sender: TObject);
    procedure actDetailViewExecute(Sender: TObject);
  private
    {private declarations}
  public
    {public declarations}
     Fid,Ffid,FGlyph: string;
    procedure NewRec;
    procedure ShowModal;
  end;

implementation

procedure TCKMLGL.BizFormShow(Sender: TObject);
begin
     DataSetBrokertree.DataSet.Open;
     DataSetBroker1.DataSet.Open;
end;

procedure TCKMLGL.actNewRootExecute(Sender: TObject);
var
   lfid,tmp,tmp1 :string;
   lquery :Tquery;
   Maxi :integer;
begin
    if DataSetBrokertree.DataSet.FieldByName('FLSH').asstring = '000' then
    begin
         jsdialogs.ShowMsg('不能添加根目录','');
         exit;
    end;
    lfid := DataSetBrokertree.DataSet.FieldByName('FLSH').asstring;
    tmp := DataSetBrokertree.DataSet.FieldByName('FLSH').asstring;
    lquery := Tquery.Create(self);
    lquery.Connection := Tsqldataset(DataSetBroker1.dataset).Connection;
    lquery.Close;
    lquery.CommandText := ' select count(*) as A from DAFLB where lx = ''会计档案'' and flsh = ''' + tmp + ''' ';
    lquery.Open;
    Maxi := lquery.FieldByName('A').AsInteger;
    lquery.Free;
    if Maxi <= 8 then
    begin
        tmp1 := '00' + sysutils.IntToStr(Maxi+1); //tmp1是增加的lsh的后三位 ,因为9+1=10所以就是应该加'0'而不是'00';
    end;
    if 9 <= Maxi  then
    begin
        if Maxi<= 98 then
           tmp1 := '0' + sysutils.IntToStr(Maxi+1);
    end;
    if 99 <= Maxi  then
    begin
         if Maxi<= 998 then
            tmp1 := sysutils.IntToStr(Maxi+1);
    end;
    Fid := DataSetBrokertree.DataSet.FieldByName('LSH').asstring.Substring(0,length(DataSetBrokertree.DataSet.FieldByName('LSH').asstring)-3) + tmp1;
    FFid := DataSetBrokertree.DataSet.FieldByName('FLSH').asstring;
    FGlyph := DataSetBrokertree.DataSet.FieldByName('TBBM').asstring;
    NewRec;
end;

procedure TCKMLGL.NewRec;

begin
    DataSetBrokertree.DataSet.DisableControls;
    DataSetBrokertree.DataSet.Edit;
    DataSetBrokertree.DataSet.Insert;
    DataSetBrokertree.DataSet.fieldbyname('LSH').asstring := Fid;
    DataSetBrokertree.DataSet.fieldbyname('FLSH').asstring := FFid;
    DataSetBrokertree.DataSet.fieldbyname('TBBM').asstring := FGlyph;
    DataSetBrokertree.DataSet.fieldbyname('XSMC').asstring := '新建分类';
    DataSetBrokertree.DataSet.fieldbyname('lx').asstring := '会计档案';
    ShowModal;
    DataSetBrokertree.DataSet.EnableControls;
end;

procedure TCKMLGL.ShowModal;
var
   lForm: TTJMLCTCK;
   lPYCapitals: string;
begin
     lForm :=TTJMLCTCK.Create(self.Context);
     if lForm.ShowModal = Business.Forms.Controls.mrOK then
     begin
          if DataSetBrokertree.Dataset.State in [TDatasetState.dsEdit, TDatasetState.dsInsert] then
          begin
               DataSetBrokertree.dataset.Post;
               DataSetBrokertree.dataset.ApplyUpdates;
               DataSetBroker1.DataSet.Refresh;
               DataSetBrokertree.DataSet.Refresh;
          end;
     end
     else  DataSetBrokertree.dataset.Cancel;
     lForm.Free;
end;


procedure TCKMLGL.actNewChildExecute(Sender: TObject);
var
   lfid,tmp,tmp1 :string;
   lquery :Tquery;
   Maxi :integer;
begin
     tmp := DataSetBrokertree.DataSet.FieldByName('LSH').asstring;
     lquery := Tquery.Create(self);
    lquery.Connection := Tsqldataset(DataSetBroker1.dataset).Connection;
    lquery.Close;
    lquery.CommandText := ' select count(*) as A from DAFLB where lx = ''会计档案'' and flsh = ''' + tmp + ''' ';
    lquery.Open;
    Maxi := lquery.FieldByName('A').AsInteger;
    lquery.Free;
    if Maxi <= 8 then
    begin
        tmp1 := '00' + sysutils.IntToStr(Maxi+1); //tmp1是增加的lsh的后三位 ,因为9+1=10所以就是应该加'0'而不是'00';
    end;
    if 9 <= Maxi  then
    begin
        if Maxi<= 98 then
           tmp1 := '0' + sysutils.IntToStr(Maxi+1);
    end;
    if 99 <= Maxi  then
    begin
         if Maxi<= 998 then
            tmp1 := sysutils.IntToStr(Maxi+1);
    end;
    if DataSetBrokertree.DataSet.FieldByName('LSH').asstring <> '0' then
       Fid := DataSetBrokertree.DataSet.FieldByName('LSH').asstring + tmp1
    else
       Fid := tmp1;
     FFid := DataSetBrokertree.DataSet.FieldByName('LSH').asstring;
     FGlyph :=  sysutils.IntToStr(DataSetBrokertree.DataSet.FieldByName('TBBM').AsInteger + 1);
     NewRec;

end;

procedure TCKMLGL.actDelNodeExecute(Sender: TObject);
begin
if not DataSetBrokertree.DataSet.IsEmpty then
      begin
         if jsdialogs.ConfirmBox('确定要删除此分类','删除分类',2) then
            begin
              DataSetBrokertree.DataSet.Delete;
              DataSetBrokertree.DataSet.ApplyUpdates;
              DataSetBroker1.DataSet.Refresh;
            end;
      end;
end;

procedure TCKMLGL.actDetailViewExecute(Sender: TObject);
begin
ShowModal;
end;




end.

未命名.jpg

15.12 KB, 下载次数: 104

回复 支持 反对

使用道具 举报

发表于 2010-1-7 13:48:46 | 显示全部楼层
您看一下action和按钮的属性,是否正确的连接了。如果是,看看是不是action设置不允许编辑。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-1-7 13:57:58 | 显示全部楼层
恩,找到了,是我的action的没有添加事件,谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-12 15:01 , Processed in 0.054703 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表