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

📄 uhintsfrm.pas

📁 插件开发学习 delphi 适合初学者
💻 PAS
字号:
unit uHintsfrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Mask, RzEdit,uIHintInf,uBasefrm,
  ComCtrls, RzDTP, RzBtnEdt, ABSMain, ActnList, TBXDkPanels, SpTBXDkPanels,
  RzPanel, TB2Dock, TB2ToolWindow, TBX, uFunction;

type
  TfrmHint = class(TBaseForm)
    Panel1: TPanel;
    Image1: TImage;
    Label1: TLabel;
    Open1: TOpenDialog;
    TBXToolWindow1: TTBXToolWindow;
    edName: TRzEdit;
    GBCircle: TRzGroupBox;
    SpTBXRadioButton1: TSpTBXRadioButton;
    SpTBXRadioButton2: TSpTBXRadioButton;
    SpTBXRadioButton3: TSpTBXRadioButton;
    SpTBXRadioButton4: TSpTBXRadioButton;
    SpTBXRadioButton5: TSpTBXRadioButton;
    GBType: TRzGroupBox;
    SpTBXRadioButton6: TSpTBXRadioButton;
    SpTBXRadioButton7: TSpTBXRadioButton;
    Label4: TLabel;
    edText: TRzButtonEdit;
    Label2: TLabel;
    RzDate: TRzDateTimeEdit;
    Label3: TLabel;
    RzTime: TRzDateTimeEdit;
    TBXButton1: TTBXButton;
    TBXButton2: TTBXButton;
    ActionList1: TActionList;
    Action1: TAction;
    Action2: TAction;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpTBXRadioButton6Click(Sender: TObject);
    procedure SpTBXRadioButton7Click(Sender: TObject);
    procedure edTextButtonClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure TBXButton1Click(Sender: TObject);
    procedure TBXButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure InsData(AType:cmdType;AID:integer);
  end;

implementation

uses uSECData, uMain;

{$R *.dfm}

procedure TfrmHint.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action:=cafree;
end;

procedure TfrmHint.InsData(AType:cmdType;AID:integer);
var
  FQuery:TABSQuery;
  i,idx:integer;
begin
  idx:=-1;
  FQuery:=TABSQuery.Create(nil);
  try
    FQuery.DatabaseName:=SECData.ABSDatabase1.DatabaseName;
    if AType=cdAdd then
    begin
      mainfrm.TheOprList.NewTaskData;
      mainfrm.TheOprList.TaskData:=mainfrm.TheOprList.TaskData;
      FQuery.SQL.Text:='insert into Hints(ID,Name,Type,Circle,Text,Date,Time,TypeDesc,CircleDesc)'+#13+
                       'values(:ID,:Name,:Type,:Circle,:Text,:Date,:Time,:TypeDesc,:CircleDesc)';
      FQuery.ParamByName('ID').AsInteger:=mainfrm.OprList.GetMaxID('Hints');
      mainfrm.TheOprList.TaskData^.ID:=FQuery.ParamByName('ID').AsInteger;
    end
    else if AType=cdEdit then
    begin
      for i:=0 to mainfrm.TheOprList.TaskList.Count-1 do
      begin
        if PTaskData(mainfrm.TheOprList.TaskList.Items[i])^.ID=AID then
        begin
          mainfrm.TheOprList.TaskData:=mainfrm.TheOprList.TaskList.Items[i];
          idx:=i;
          break;
        end;
      end;

      FQuery.SQL.Text:='update Hints'+#13+
                       'set Name=:Name,'+#13+
                       '    Type=:Type,'+#13+
                       '    Circle=:Circle,'+#13+
                       '    Text=:Text,'+#13+
                       '    Date=:Date,'+#13+
                       '    Time=:Time,'+#13+
                       '    TypeDesc=:TypeDesc,'+#13+
                       '    CircleDesc=:CircleDesc,'+#13+
                       '    Runned=0'+#13+
                       'where ID=:ID';
      FQuery.ParamByName('ID').AsInteger:=AID;
    end;
    FQuery.ParamByName('Name').AsString:=edName.Text;
    mainfrm.TheOprList.TaskData^.Caption:=edName.Text;
    for i:=0 to GBType.ControlCount-1 do
      if TSpTBXRadioButton(GBType.Controls[i]).Checked then
      begin
        FQuery.ParamByName('Type').AsInteger:=GBType.Controls[i].Tag;
        mainfrm.TheOprList.TaskData^.AType:=GBType.Controls[i].Tag;
        mainfrm.TheOprList.TaskData^.TypeDesc:=TSpTBXRadioButton(GBType.Controls[i]).Caption;
        FQuery.ParamByName('TypeDesc').AsString:=TSpTBXRadioButton(GBType.Controls[i]).Caption;
        break;
      end;
    for i:=0 to GBCircle.ControlCount-1 do
      if TSpTBXRadioButton(GBCircle.Controls[i]).Checked then
      begin
        FQuery.ParamByName('Circle').AsInteger:=GBCircle.Controls[i].Tag;
        mainfrm.TheOprList.TaskData^.Circle:=GBCircle.Controls[i].Tag;
        mainfrm.TheOprList.TaskData^.CircleDesc:=TSpTBXRadioButton(GBCircle.Controls[i]).Caption;
        FQuery.ParamByName('CircleDesc').AsString:=TSpTBXRadioButton(GBCircle.Controls[i]).Caption;
        break;
      end;
    mainfrm.TheOprList.TaskData^.Runned:=0;     
    FQuery.ParamByName('Text').AsString:=edText.Text;
    mainfrm.TheOprList.TaskData^.Text:=edText.Text;
    FQuery.ParamByName('Date').AsDate:=RzDate.Date;
    mainfrm.TheOprList.TaskData^.Date:=RzDate.Date;
    FQuery.ParamByName('Time').AsTime:=RzTime.Time;
    mainfrm.TheOprList.TaskData^.Time:=RzTime.Time;
    FQuery.ExecSQL;

    if AType=cdAdd then
      mainfrm.TheOprList.TaskList.Add(mainfrm.TheOprList.TaskData)
    else if AType=cdEdit then
      mainfrm.TheOprList.TaskList.Items[idx]:=mainfrm.TheOprList.TaskData;
  finally
    FQuery.Free;
  end;
end;

procedure TfrmHint.SpTBXRadioButton6Click(Sender: TObject);
begin
  edText.ButtonVisible:=false;
end;

procedure TfrmHint.SpTBXRadioButton7Click(Sender: TObject);
begin
  edText.ButtonVisible:=true; 
end;

procedure TfrmHint.edTextButtonClick(Sender: TObject);
begin
  if open1.Execute then
    edText.Text:=open1.FileName;  
end;

procedure TfrmHint.FormShow(Sender: TObject);
var
  i:integer;
begin
  Image1.Picture.Bitmap.Handle:=GetBmp('105');
  if TheCmd=cdEdit then
  begin
    edName.Text:=PTaskData(Data)^.Caption;
    edText.Text:=PTaskData(Data)^.Text;
    for i:=0 to GBCircle.ControlCount-1 do
      if TSpTBXRadioButton(GBCircle.Controls[i]).Tag=PTaskData(Data)^.Circle then
      begin
        TSpTBXRadioButton(GBCircle.Controls[i]).Checked:=true;
        break;
      end;
    for i:=0 to GBType.ControlCount-1 do
      if TSpTBXRadioButton(GBType.Controls[i]).Tag=PTaskData(Data)^.AType then
      begin
        TSpTBXRadioButton(GBType.Controls[i]).Checked:=true;
        break;
      end;
    RzDate.Date:=PTaskData(Data)^.Date;
    RzTime.Time:=PTaskData(Data)^.Time;
    ID:=PTaskData(Data)^.ID;
  end;
end;

procedure TfrmHint.TBXButton1Click(Sender: TObject);
begin
  if trim(edName.Text)='' then
  begin
    MessageBox(Handle, '必须键入名称。', '错误', MB_ICONHAND);
    exit;
  end;
  if trim(edText.Text)='' then
  begin
    MessageBox(Handle, '必须键入内容。', '错误', MB_ICONHAND);
    exit;
  end;
  if trim(RzDate.Text)='' then
  begin
    MessageBox(Handle, '必须键入起始日期。', '错误', MB_ICONHAND);
    exit;
  end;
  if trim(RzTime.Text)='' then
  begin
    MessageBox(Handle, '必须键入起始时间。', '错误', MB_ICONHAND);
    exit;
  end;
  InsData(TheCmd,ID);
  ModalResult:=mrOk;
end;

procedure TfrmHint.TBXButton2Click(Sender: TObject);
begin
  ModalResult:=mrCancel;
end;

end.

⌨️ 快捷键说明

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