📄 untfunc.pas
字号:
{*******************************************************}
{ }
{ 单元名称: UntFunc }
{ 创建日期: 2005-08-26 }
{ 摘要说明: 资料添加编辑单元 }
{ }
{ 详细说明: }
{ }
{ 参 阅: }
{ }
{ 已知问题: }
{ }
{ 待作事项: }
{ }
{ 作 者: 胡孟杰 }
{ Copyright (C) 2005 FdAuto }
{ 当前版本: 2.2 }
{ 版本历史: }
{ }
{*******************************************************}
unit UntFunc;
{==========================================================================
单元接口部分
==========================================================================}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Menus, XPMenu, StdCtrls, ExtCtrls, ComCtrls, Clipbrd,
SynEdit, SynMemo, SynEditor;
type
TFrmFunc = class(TForm)
Panel1: TPanel;
ComboType: TComboBox;
Label2: TLabel;
EditUses: TEdit;
Label1: TLabel;
EdtSubject: TEdit;
Splitter1: TSplitter;
MemoRemark: TMemo;
Label3: TLabel;
SBtnSave: TSpeedButton;
SBtnClose: TSpeedButton;
CheckBox1: TCheckBox;
SBtnNew: TSpeedButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
XPMenu1: TXPMenu;
CheckBox2: TCheckBox;
Label4: TLabel;
ComboBoxFunc: TComboBox;
SbtWin: TSpeedButton;
MemoConent: TSynEditor;
N6: TMenuItem;
aSynFind11: TMenuItem;
aSynFindNext11: TMenuItem;
aSynReplace11: TMenuItem;
aSynReplaceNext11: TMenuItem;
aSynUndo11: TMenuItem;
aSynRedo11: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
procedure SBtnCloseClick(Sender: TObject);
procedure ComboTypeDropDown(Sender: TObject);
procedure SBtnSaveClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure MemoRemarkDblClick(Sender: TObject);
procedure SBtnNewClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure ComboTypeChange(Sender: TObject);
procedure ComboBoxFuncChange(Sender: TObject);
procedure PopupMenu1Popup(Sender: TObject);
procedure MemoConentKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SbtWinClick(Sender: TObject);
procedure ComboBoxFuncExit(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormHide(Sender: TObject);
procedure MemoConentDragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure MemoConentDragDrop(Sender, Source: TObject; X, Y: Integer);
procedure MemoConentDblClick(Sender: TObject);
procedure EditUsesDblClick(Sender: TObject);
procedure EdtSubjectDblClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmFunc : TFrmFunc;
IDList : Tstrings;
Edited : boolean;
{==========================================================================
单元实现部分
==========================================================================}
implementation
{==========================================================================
引用的单元,数据模块,DLL接口
==========================================================================}
uses UntDM, UntFaceD, UntMain, UntSysFaceD;
{$R *.dfm}
procedure TFrmFunc.SBtnCloseClick(Sender: TObject);
var
k : integer;
begin
if Edited then
begin
//self.FormStyle := fsNormal;
CheckBox2.Checked := false;
k := Application.MessageBox(PChar('资料内容已经修改,是否保存?'),PChar('系统提示'),MB_YESNOCANCEL + MB_ICONQUESTION);
if k = idYES then
begin
self.SBtnSaveClick(Sender);
if Edited then
Exit
end
else
if k = idCancel then
Exit;
end;
Edited := false;
Close;
end;
{==========================================================================
过程名: TFrmFunc.ComboTypeDropDown
功 能: 组合框显示类别列表
参 数:
作 者: 胡孟杰
日 期: 2005.08.26
==========================================================================}
procedure TFrmFunc.ComboTypeDropDown(Sender: TObject);
var
TypeList : Tstrings;
begin
TypeList := Tstringlist.Create;
Type_GetTypeList(DM.ADOConnection2, TypeList);
ComboType.Clear;
ComboType.Text := '选择资料类别';
ComboType.Items.AddStrings(TypeList);
TypeList.Free;
end;
{==========================================================================
过程名: TFrmFunc.SBtnSaveClick
功 能: 保存资料
参 数:
作 者: 胡孟杰
日 期: 2005.08.26
==========================================================================}
procedure TFrmFunc.SBtnSaveClick(Sender: TObject);
begin
//检查输入数据是否合法
if (ComboType.Text = '选择资料类别') or (ComboType.Text = '') then
begin
ShowInfo('请选择资料所属类别!');
ComboType.SetFocus;
Exit;
end;
if EdtSubject.Text = '' then
begin
ShowInfo('资料标题不能为空!');
EdtSubject.SetFocus;
Exit;
end;
//执行保存操作
if self.Tag > 0 then //编辑状态
begin
if Func_Edit(DM.ADOConnection2, Self.Tag, ComboType.Text, EdtSubject.Text,
EditUses.Text, MemoConent.Text, MemoRemark.Text) then
ShowInfo('保存成功!');
self.ComboBoxFunc.Text := EdtSubject.Text ;
self.Caption := EdtSubject.Text ;
end
else //添加状态
begin
if Func_AddNew(DM.ADOConnection2, ComboType.Text, EdtSubject.Text,
EditUses.Text, MemoConent.Text, MemoRemark.Text) then
ShowInfo('保存成功!');
self.ComboBoxFunc.Text := EdtSubject.Text ;
self.Caption := EdtSubject.Text ;
end;
Edited := false;
end;
{==========================================================================
过程名: TFrmFunc.CheckBox1Click
功 能: 设置自动换行
参 数:
作 者: 胡孟杰
日 期: 2005.08.26
==========================================================================}
procedure TFrmFunc.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
begin
MemoConent.ScrollBars := ssVertical;
MemoConent.WordWrap.Enabled := true;
end
else
begin
MemoConent.ScrollBars := ssBoth;
MemoConent.WordWrap.Enabled := false;
end;
if ComboBoxFunc.ItemIndex > 0 then
self.ComboBoxFuncChange(Sender);
end;
{==========================================================================
过程名: TFrmFunc.MemoRemarkDblClick
功 能: 双击全选
参 数:
作 者: 胡孟杰
日 期: 2005.08.26
==========================================================================}
procedure TFrmFunc.MemoRemarkDblClick(Sender: TObject);
begin
MemoRemark.SelectAll;
end;
{==========================================================================
过程名: TFrmFunc.SBtnNewClick
功 能: 新建资料
参 数:
作 者: 胡孟杰
日 期: 2005.08.26
==========================================================================}
procedure TFrmFunc.SBtnNewClick(Sender: TObject);
var
k : integer;
begin
if Edited then
begin
//self.FormStyle := fsNormal;
CheckBox2.Checked := false;
k := Application.MessageBox(PChar('资料内容已经修改,是否保存?'),PChar('系统提示'),MB_YESNOCANCEL + MB_ICONQUESTION);
if k = idYES then
begin
self.SBtnSaveClick(Sender);
if Edited then
Exit;
end
else
if k = idCancel then
Exit;
end;
Self.ComboType.Text := '选择资料类别';
self.ComboBoxFunc.Clear ;
self.ComboBoxFunc.Text := '选择该分类资料';
Self.EditUses.Clear;
Self.EdtSubject.Clear;
Self.MemoConent.Clear;
Self.MemoRemark.Clear;
CheckBox1.Caption := '自动换行';
CheckBox2.Caption := '置于顶层';
Self.Tag := 0;
Self.Caption := '添加资料';
Edited := false;
end;
{==========================================================================
过程名: TFrmFunc.FormActivate
功 能: 如果是编辑状态,则载入资料
参 数:
作 者: 胡孟杰
日 期: 2005.08.26
==========================================================================}
procedure TFrmFunc.FormActivate(Sender: TObject);
var
PType, PSubject, PUses: string;
PConent, PRemark : Tstrings;
begin
if Self.Tag > 0 then
begin
PConent := Tstringlist.Create;
PRemark := Tstringlist.Create;
SetLength(PType, 255);
SetLength(PSubject, 255);
SetLength(PUses, 255);
if Func_GetRecordByID(DM.ADOConnection2, Self.Tag,
PChar(PType), PChar(PSubject), PChar(PUses), PConent, PRemark) then
begin
EditUses.Text := PUses;
MemoConent.Text := PConent.Text;
MemoRemark.Text := PRemark.Text;
ComboType.Text := PType;
EdtSubject.Text := PSubject;
self.Caption := '修改资料-' + PSubject;
end
else
self.Caption := '添加资料' ;
PConent.Free;
PRemark.Free;
end
else
begin
self.Caption := '添加资料' ;
if Clipboard.HasFormat(CF_TEXT) then
begin
self.MemoConent.PasteFromClipboard ;
self.EdtSubject.Text := self.MemoConent.Lines[0] ;
EditUses.Text := MemoConent.Lines[1] ;
end;
end;
end;
procedure TFrmFunc.CheckBox2Click(Sender: TObject);
var
tname,tuses,ttype : string;
begin
tname := EdtSubject.Text ;
tuses := EditUses.Text ;
ttype := ComboType.Text ;
if CheckBox2.Checked then
begin
self.WindowState := wsNormal;
self.FormStyle := fsStayOnTop;
FormMain.CoolTrayIcon1.HideMainForm ;
end
else
self.FormStyle := fsNormal;
ComboType.Text := '选择资料类别';
ComboBoxFunc.Text := '选择该分类资料';
CheckBox1.Caption := '自动换行';
CheckBox2.Caption := '置于顶层';
EdtSubject.Text := tname ;
EditUses.Text := tuses ;
ComboType.Text := ttype ;
end;
procedure TFrmFunc.FormCreate(Sender: TObject);
begin
IDList := Tstringlist.Create;
Edited := false;
end;
procedure TFrmFunc.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if not Edited then
begin
IDList.Free;
Action := caFree;
end
else
begin
self.SBtnCloseClick(Sender);
if Edited then
Action := caNone
else
begin
IDList.Free;
Action := caFree;
end;
end;
end;
procedure TFrmFunc.ComboTypeChange(Sender: TObject);
var
SubList : Tstrings;
begin
SubList := Tstringlist.Create;
Func_GetIDListByType(DM.ADOConnection2, self.ComboType.Text, IDList, SubList);
self.ComboBoxFunc.Clear;
self.ComboBoxFunc.Text := '选择该分类资料';
self.ComboBoxFunc.Items.AddStrings(SubList);
SubList.Free;
end;
procedure TFrmFunc.ComboBoxFuncChange(Sender: TObject);
var
PType, PSubject, PUses: string;
PConent, PRemark : Tstrings;
k : integer;
begin
if Edited then
begin
//self.FormStyle := fsNormal;
CheckBox2.Checked := false;
k := Application.MessageBox(PChar('代码内容已经修改,是否保存?'),PChar('系统提示'),MB_YESNOCANCEL + MB_ICONQUESTION);
if k = idYES then
begin
self.SBtnSaveClick(Sender);
if Edited then
Exit;
end
else
if k = idCancel then
Exit;
end;
PConent := Tstringlist.Create;
PRemark := Tstringlist.Create;
SetLength(PType, 255);
SetLength(PSubject, 255);
SetLength(PUses, 255);
if Func_GetRecordByID(DM.ADOConnection2, StrToInt(IDList[ComboBoxFunc.ItemIndex]),
PChar(PType), PChar(PSubject), PChar(PUses), PConent, PRemark) then
begin
EditUses.Text := PUses;
MemoConent.Text := PConent.Text;
MemoRemark.Text := PRemark.Text;
ComboType.Text := PType;
EdtSubject.Text := PSubject;
end;
PConent.Free;
PRemark.Free;
self.Caption := '修改资料-' + PSubject;
self.Tag := StrToInt(IDList[ComboBoxFunc.ItemIndex]);
Edited := false;
end;
procedure TFrmFunc.PopupMenu1Popup(Sender: TObject);
begin
//self.N1.Enabled := self.MemoConent.SelLength > 0 ;
//self.N2.Enabled := self.N1.Enabled ;
//N3.Enabled := Clipboard.HasFormat(CF_TEXT);
end;
procedure TFrmFunc.MemoConentKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Edited := true;
end;
procedure TFrmFunc.SbtWinClick(Sender: TObject);
begin
if self.WindowState = wsNormal then
FormMain.FM := 8
else
FormMain.FM := 9;
self.Close ;
end;
procedure TFrmFunc.ComboBoxFuncExit(Sender: TObject);
begin
if Trim(EdtSubject.Text)='' then
ComboBoxFunc.Text := '选择该分类资料'
else
ComboBoxFunc.Text := EdtSubject.Text ;
end;
procedure TFrmFunc.FormShow(Sender: TObject);
begin
if FormMain.WindowState = wsMinimized then
FormMain.TimerEnable(1);
end;
procedure TFrmFunc.FormHide(Sender: TObject);
begin
if FormMain.WindowState = wsMinimized then
begin
FormMain.TimerEnable(0);
ShowInfo('右键打开菜单,Delphi程序员助手为您服务。');
end;
end;
procedure TFrmFunc.MemoConentDragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
begin
MemoConent.SetFocus ;
Accept := true;
end;
procedure TFrmFunc.MemoConentDragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
MemoConent.Update ;
end;
procedure TFrmFunc.MemoConentDblClick(Sender: TObject);
begin
MemoConent.SelectAll ;
end;
procedure TFrmFunc.EditUsesDblClick(Sender: TObject);
begin
EditUses.SelectAll ;
end;
procedure TFrmFunc.EdtSubjectDblClick(Sender: TObject);
begin
EdtSubject.SelectAll ;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -