?? modifypas.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 + -