⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modifypas.pas

📁 DELPHI 编写个人工作计划事务管理软件
💻 PAS
字号:
unit Modifypas;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;

type
  TModifyForm = class(TForm)
    ModifyCmdPanel: TPanel;
    IsokBut: TBitBtn;
    CancelBut: TBitBtn;
    UseNameLabel: TLabel;
    ED_UseName: TEdit;
    EndDateLabel: TLabel;
    EndDate_Pick: TDateTimePicker;
    UsePlanLabel: TLabel;
    PlanLevelLabel: TLabel;
    CB_Level: TComboBox;
    PlanStatueLabel: TLabel;
    CB_PlanStatue: TComboBox;
    GB_DefindValue: TGroupBox;
    Defined_Usename_Label: TLabel;
    Defined_Level_Label: TLabel;
    Defined_Date_Label: TLabel;
    Defined_Statue_Label: TLabel;
    Defined_Plan_Label: TLabel;
    Defined_UseName: TLabel;
    Defined_Level: TLabel;
    Defined_Date: TLabel;
    Defined_Statue: TLabel;
    Defined_Plan: TLabel;
    ED_UsePlan: TComboBox;
    StatusMemo: TMemo;
    StatusDescLabel: TLabel;
    RemarkLabel: TLabel;
    ReMarkMemo: TMemo;
    FilishDatePicker: TDateTimePicker;
    FilishDay_Label: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure ED_UseNameChange(Sender: TObject);
    procedure CB_LevelChange(Sender: TObject);
    procedure EndDate_PickChange(Sender: TObject);
    procedure EndDate_PickKeyPress(Sender: TObject; var Key: Char);
    procedure EndDate_PickUserInput(Sender: TObject;
      const UserString: String; var DateAndTime: TDateTime;
      var AllowChange: Boolean);
    procedure CB_PlanStatueChange(Sender: TObject);
    procedure ED_UsePlanChange(Sender: TObject);
    procedure IsokButClick(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure StatusMemoChange(Sender: TObject);
    procedure ReMarkMemoChange(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  ModifyForm: TModifyForm;

implementation

uses Share_Date;
{$R *.dfm}

procedure TModifyForm.FormCreate(Sender: TObject);
var FC_CheckOk : Boolean;
    FC_Dir : String;
    FC_Str : TStringList;
begin
  //==== 修改面板窗体创建时 ====//
  EndDate_Pick.Format := 'yyyy-MM-dd';
  FilishDatePicker.Format := 'yyyy-MM-dd';
  
  {----------------- 加入历史计划任务 ---------------}
  FC_Dir := ExtractFilePath(Application.ExeName);
  if FC_Dir[Length(FC_Dir)] <> '\' then FC_Dir := FC_Dir + '\';
  ED_UsePlan.Clear;
  FC_Str := TStringList.Create;
  Try
    FC_CheckOk := ReadParteFile(FC_Dir + SHAREINIFILE, FC_Str);
    if FC_CheckOk = TRUE then ED_UsePlan.Items.AddStrings(FC_Str);
  Finally
    FC_Str.Free;
  end;
  if Share_Str.Count = 11 then begin
    Defined_UseName.Caption := Share_Str[2];
    Defined_Level.Caption := Share_Str[6];
    Defined_Date.Caption := Share_Str[5];
    Defined_Statue.Caption := Share_Str[7];
    Defined_Plan.Caption := Share_Str[3];

    {---------- 用户操作控件 --------}
    ED_UseName.Text := Trim(Share_Str[2]);
    CB_Level.ItemIndex := GetLevelDate(Trim(Share_Str[6])) - 1;
    EndDate_Pick.Date := StrToDate(Trim(Share_Str[5]));
    CB_PlanStatue.ItemIndex := GetStatueIndex(Trim(Share_Str[7])) - 1;
    if CompareText('完成', Trim(Share_Str[7])) = 0 then begin
      FilishDay_Label.Enabled := TRUE;
      FilishDatePicker.Enabled := TRUE;
      FilishDatePicker.Color := clWindow;
      FilishDatePicker.Date := StrToDate(Trim(Share_Str[8]));;
    end else begin
      FilishDatePicker.Date := Date();
      FilishDay_Label.Enabled := FALSE;
      FilishDatePicker.Enabled := FALSE;
      FilishDatePicker.Color := clMenu;
    end;

    ED_UsePlan.Text := Trim(Share_Str[3]);
    StatusMemo.Text := Trim(Share_Str[9]);
    ReMarkMemo.Text := Trim(Share_Str[10]);
  end else begin
    Defined_UseName.Caption := '';
    Defined_Level.Caption := '';
    Defined_Date.Caption := '';
    Defined_Statue.Caption := '';
    Defined_Plan.Caption := '';

    {---------- 用户操作控件 --------}
    ED_UseName.Clear;
    CB_Level.ItemIndex := -1;
    CB_PlanStatue.ItemIndex := -1;

    FilishDatePicker.Date := Date();
    FilishDay_Label.Enabled := FALSE;
    FilishDatePicker.Enabled := FALSE;
    FilishDatePicker.Color := clMenu;

    EndDate_Pick.Date := Date();
    ED_UsePlan.ItemIndex := -1;
    StatusMemo.Clear;
    ReMarkMemo.Clear;
  end;
  IsokBut.Enabled := FALSE;
end;

procedure TModifyForm.FormActivate(Sender: TObject);
begin
  //==== 当窗体成为焦点窗体时 ====//
  ED_UseName.SetFocus;
end;

procedure TModifyForm.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
begin
  if Share_SqlStr = '' then ModifyForm.ModalResult := mrCancel;
end;

{**********************************}
{****** 用户操作控件操作过程 ******}
{**********************************}
procedure TModifyForm.ED_UseNameChange(Sender: TObject);
begin
  //---- 用户姓名改变时代码 ----//
  IsokBut.Enabled := TRUE;
end;

procedure TModifyForm.CB_LevelChange(Sender: TObject);
begin
  //---- 任务急缓情况选择 ----//
  IsokBut.Enabled := TRUE;
end;

procedure TModifyForm.EndDate_PickChange(Sender: TObject);
begin
  //---- 完成日期改变时代码 ----//
  IsokBut.Enabled := TRUE;
end;

procedure TModifyForm.EndDate_PickKeyPress(Sender: TObject; var Key: Char);
begin
  //---- 用户输入日期时代码 ----//
  Case Key of
    '0'..'9', #8, #38, #40 : ;
    else Key := #21;
  end;
end;

procedure TModifyForm.EndDate_PickUserInput(Sender: TObject;
  const UserString: String; var DateAndTime: TDateTime;
  var AllowChange: Boolean);
begin
  //---- 接收用户键盘输入 ----//
  if DateAndTime >= Date then AllowChange := TRUE
  else AllowChange := FALSE;
end;

procedure TModifyForm.CB_PlanStatueChange(Sender: TObject);
begin
  //---- 任务完成状态改变时代码 ----//
  IsokBut.Enabled := TRUE;
  FilishDatePicker.Format := 'yyyy-MM-dd';
  if CompareText('完成', Trim(CB_PlanStatue.Text)) = 0 then begin
    FilishDay_Label.Enabled := TRUE;
    FilishDatePicker.Enabled := TRUE;
    FilishDatePicker.Color := clWindow;
    if Trim(Share_Str[8])<>'' then FilishDatePicker.Date := StrToDate(Trim(Share_Str[8]))
    else FilishDatePicker.Date := Date();
  end else begin
    FilishDatePicker.Date := Date();
    FilishDay_Label.Enabled := FALSE;
    FilishDatePicker.Enabled := FALSE;
    FilishDatePicker.Color := clMenu;
  end;
end;

procedure TModifyForm.ED_UsePlanChange(Sender: TObject);
begin
  //---- 工作记划改变时的代码 ---//
  IsokBut.Enabled := TRUE;
end;

procedure TModifyForm.StatusMemoChange(Sender: TObject);
begin
  //==== 当备注说明改变时 ====//
  IsokBut.Enabled := TRUE;
end;

procedure TModifyForm.ReMarkMemoChange(Sender: TObject);
begin
  //=== 当修改备注改变时 ====//
  IsokBut.Enabled := TRUE;
end;

procedure TModifyForm.IsokButClick(Sender: TObject);
Type TMODIFYWORD = (JihuaName = 2,
                    JihuaMain = 3,
                    EndDate = 5,
                    LevelStatus = 6,
                    JihuaStatus = 7,
                    FinishDate = 8,
                    JihuaRemark = 9,
                    Remark = 10
                   );
var IBC_MStr : TStringList;
    I : Integer;
begin
  //---- 单击确定按钮时的代码 ----//
  IsokBut.Enabled := FALSE;
  IBC_MStr := TStringList.Create;
  Try
    if Trim(ED_UseName.Text) = '' then begin
      IBC_MStr.Add('JihuaName');
      Share_Str.Strings[Ord(TMODIFYWORD(JihuaName))] := '无名虾';
    end else if CompareText(Trim(Defined_UseName.Caption), Trim(ED_UseName.Text)) <> 0 then begin
      IBC_MStr.Add('JihuaName');
      Share_Str.Strings[Ord(TMODIFYWORD(JihuaName))] := Trim(ED_UseName.Text);
    end;
    if CompareText(Trim(Defined_Level.Caption), Trim(CB_Level.Text)) <> 0 then begin
      IBC_MStr.Add('LevelStatus');
      Share_Str.Strings[Ord(TMODIFYWORD(LevelStatus))] := Trim(CB_Level.Text);
    end;
    if CompareText(Trim(Defined_Date.Caption), FormatDateTime('yyyy-MM-dd', EndDate_Pick.Date)) <> 0 then begin
      IBC_MStr.Add('EndDate');
      Share_Str.Strings[Ord(TMODIFYWORD(EndDate))] := FormatDateTime('yyyy-MM-dd', EndDate_Pick.Date);
    end;
    if CompareText(Trim(Defined_Statue.Caption), Trim(CB_PlanStatue.Text)) <> 0 then begin
      IBC_MStr.Add('JihuaStatus');
      Share_Str.Strings[Ord(TMODIFYWORD(JihuaStatus))] := Trim(CB_PlanStatue.Text);
    end;

    if FilishDatePicker.Enabled = TRUE then begin
      IBC_MStr.Add('FinishDate');
      Share_Str.Strings[Ord(TMODIFYWORD(FinishDate))] := FormatDateTime('yyyy-MM-dd', FilishDatePicker.Date);
    end else begin
      IBC_MStr.Add('FinishDate');
      Share_Str.Strings[Ord(TMODIFYWORD(FinishDate))] := '';
    end;

    if Trim(ED_UsePlan.Text) = '' then begin
      IBC_MStr.Add('JihuaMain');
      Share_Str.Strings[Ord(TMODIFYWORD(JihuaMain))] := Trim(ED_UseName.Text) + '未知任务';
    end else if CompareText(Trim(Defined_Plan.Caption), Trim(ED_UsePlan.Text)) <> 0 then begin
      IBC_MStr.Add('JihuaMain');
      Share_Str.Strings[Ord(TMODIFYWORD(JihuaMain))] := Trim(ED_UsePlan.Text);
    end;
    if CompareText(Trim(Share_Str[Ord(TMODIFYWORD(JihuaRemark))]), Trim(StatusMemo.Text)) <> 0 then begin
      IBC_MStr.Add('JihuaRemark');
      Share_Str.Strings[Ord(TMODIFYWORD(JihuaRemark))] := Trim(StatusMemo.Text);
    end;
    if CompareText(Trim(Share_Str[Ord(TMODIFYWORD(Remark))]), Trim(ReMarkMemo.Text)) <> 0 then begin
      IBC_MStr.Add('Remark');
      Share_Str.Strings[Ord(TMODIFYWORD(Remark))] := Trim(ReMarkMemo.Text);
    end;

    {--------------------- 取得修改字串 ----------------------}
    if IBC_MStr.Count > 0 then begin
      Share_SqlStr := 'UPDATE JihuaTable SET ';
      if CompareText('JihuaName',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'JihuaName=''';
        Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaName))]) + '''';
      end else if CompareText('JihuaMain',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'JihuaMain=''';
        Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaMain))]) + '''';
      end else if CompareText('EndDate',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'EndDate=''';
        Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(EndDate))]) + '''';
      end else if CompareText('LevelStatus',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'LevelStatus=';
        Share_SqlStr := Share_SqlStr + IntToStr(GetLevelDate(Trim(Share_Str.Strings[Ord(TMODIFYWORD(LevelStatus))])));
      end else if CompareText('JihuaStatus',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'JihuaStatus=''';
        Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaStatus))]) + '''';
      end else if CompareText('FinishDate',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'FinishDate=''';
        Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(FinishDate))]) + '''';
      end else if CompareText('JihuaRemark',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'JihuaRemark=''';
        Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaRemark))]) + '''';
      end else if CompareText('Remark',IBC_MStr[0]) = 0 then begin
        Share_SqlStr := Share_SqlStr + 'Remark=''';
        Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(Remark))]) + '''';
      end;

      For I := 1 to IBC_MStr.Count - 1 do begin
        if CompareText('JihuaName',IBC_MStr[I]) = 0 then begin
          Share_SqlStr := Share_SqlStr + ',JihuaName=''';
          Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaName))]) + '''';
        end else if CompareText('JihuaMain',IBC_MStr[I]) = 0 then begin
          Share_SqlStr := Share_SqlStr + ',JihuaMain=''';
          Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaMain))]) + '''';
        end else if CompareText('EndDate',IBC_MStr[I]) = 0 then begin
          Share_SqlStr := Share_SqlStr + ',EndDate=''';
          Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(EndDate))]) + '''';
        end else if CompareText('LevelStatus',IBC_MStr[I]) = 0 then begin
          Share_SqlStr := Share_SqlStr + ',LevelStatus=';
          Share_SqlStr := Share_SqlStr + IntToStr(GetLevelDate(Trim(Share_Str.Strings[Ord(TMODIFYWORD(LevelStatus))])));
        end else if CompareText('JihuaStatus',IBC_MStr[I]) = 0 then begin
          Share_SqlStr := Share_SqlStr + ',JihuaStatus=''';
          Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaStatus))]) + '''';
        end else if CompareText('FinishDate',IBC_MStr[I]) = 0 then begin
            Share_SqlStr := Share_SqlStr + ',FinishDate=''';
            Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(FinishDate))]) + '''';
        end else if CompareText('JihuaRemark',IBC_MStr[I]) = 0 then begin
          Share_SqlStr := Share_SqlStr + ',JihuaRemark=''';
          Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(JihuaRemark))]) + '''';
        end else if CompareText('Remark',IBC_MStr[I]) = 0 then begin
          Share_SqlStr := Share_SqlStr + ',Remark=''';
          Share_SqlStr := Share_SqlStr + Trim(Share_Str.Strings[Ord(TMODIFYWORD(Remark))]) + '''';
        end;
      end;
      Share_SqlStr := Share_SqlStr + ' WHERE ID=''';
      Share_SqlStr := Share_SqlStr + Trim(Share_Str[0]) + '''';
    end;
  Finally
    IBC_MStr.Free;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -