?? rgtselectunitfunctionselect.pas
字號:
//------------------------------------------------------------
// 作者:曾慶順
// 模塊:權限功能選擇窗口
// 時間:2002.09.21
// 功能介紹:
//-----------------------------------------------------------
unit RgtSelectUnitFunctionSelect;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, StdCtrls, ExtCtrls, Db, DBClient, Menus,
DBTables, Buttons;
type
TRgtSelectFormFunctionSelect = class(TForm)
PnlQuery: TPanel;
PnlBtn: TPanel;
BtnClear: TButton;
BtnQuery: TButton;
BtnSelect: TButton;
BtnCancel: TButton;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
btn_sort: TButton;
Label1: TLabel;
Label3: TLabel;
Label2: TLabel;
Label4: TLabel;
Label20: TLabel;
EdtFuncSerialIdQueryFrom: TEdit;
EdtFuncSerialIdQueryTo: TEdit;
EdtFuncNameQuery: TEdit;
GroupBox2: TGroupBox;
Label21: TLabel;
Label22: TLabel;
EdtFormCaptionQuery: TEdit;
EdtControlCaptionQuery: TEdit;
SbSysFormCtrlListQuery: TBitBtn;
CmbControlTypeQuery: TComboBox;
EdtExtraQuery: TEdit;
Query1: TQuery;
DataSource1: TDataSource;
Splitter1: TSplitter;
DbgPrivFunction: TDBGrid;
procedure BtnClearClick(Sender: TObject);
procedure BtnQueryClick(Sender: TObject);
procedure BtnSelectClick(Sender: TObject);
procedure BtnCancelClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btn_sortClick(Sender: TObject);
procedure EdtFuncSerialIdQueryFromKeyPress(Sender: TObject;
var Key: Char);
procedure EdtFuncSerialIdQueryToKeyPress(Sender: TObject;
var Key: Char);
procedure SbSysFormCtrlListQueryClick(Sender: TObject);
procedure Query1AfterScroll(DataSet: TDataSet);
procedure DbgPrivFunctionDblClick(Sender: TObject);
private
{ Private declarations }
P_Condition:String;
public
{ Public declarations }
P_QueryFORMNAME,P_QueryCONTROLNAME :string;
P_FUNCID,P_CONTROLTYPE,P_FUNCNAME,P_FUNCSERIALID :string;
end;
var
RgtSelectFormFunctionSelect: TRgtSelectFormFunctionSelect;
implementation
uses dmmain,sort,RgtSelectFormCtrlFrmSelect;
{$R *.DFM}
procedure TRgtSelectFormFunctionSelect.BtnClearClick(Sender: TObject);
var V_I:Integer;
begin
For V_I:=0 To (PnlQuery.ControlCount-1) do
If PnlQuery.Controls[V_I].ClassType=TEdit Then
(PnlQuery.Controls[V_I] as TEdit).Text:='';
EdtFormCaptionQuery.Text :='';
EdtControlCaptionQuery.Text :='';
P_QueryFORMNAME :='';
P_QueryCONTROLNAME :='';
end;
procedure TRgtSelectFormFunctionSelect.BtnQueryClick(Sender: TObject);
var
P_Filter ,V_SControlType:String;
begin
screen.Cursor :=crHourGlass;
query1.close;
P_Filter :='select * from PRIVFUNCTION where 1=1 ';
if trim(EdtFuncSerialIdQueryFrom.Text) <>'' then
P_Filter:=P_Filter +' and FUNCSERIALID>='+trim(EdtFuncSerialIdQueryFrom.Text);
if trim(EdtFuncSerialIdQueryTo.Text) <>'' then
P_Filter:=P_Filter+' and FUNCSERIALID<='+trim(EdtFuncSerialIdQueryTo.Text);
if EdtFuncNameQuery.Text<>'' then
P_Filter:=P_Filter+' and FUNCNAME Like '+#39+EdtFuncNameQuery.text+#39;
if (trim(EdtFormCaptionQuery.Text)<>'') or (trim(EdtControlCaptionQuery.Text)<>'') then
begin
if (trim(EdtFormCaptionQuery.Text)<>'') and (trim(EdtControlCaptionQuery.Text)<>'') then
P_Filter:=P_Filter+' and FUNCID like '+#39+P_QueryFORMNAME
+'.'+P_QueryCONTROLNAME+#39
else
begin
if (trim(EdtFormCaptionQuery.Text)<>'') then
P_Filter:=P_Filter+' and FUNCID like '+#39+P_QueryFORMNAME+'.%'+#39;
if (trim(EdtControlCaptionQuery.Text)<>'') then
P_Filter:=P_Filter+' and FUNCID like '+#39+'%.'+P_QueryCONTROLNAME+#39;
end;
end;
if EdtExtraQuery.Text<>'' then
P_Filter:=P_Filter+' and EXTRA like '+#39+EdtExtraQuery.text+#39;
if CmbControlTypeQuery.text<>'' then
begin
If CmbControlTypeQuery.Text='看不見' then
V_SControlType:='INVISIBLE';
If CmbControlTypeQuery.Text='看得見' then
V_SControlType:='VISIBLE';
If CmbControlTypeQuery.Text='可編輯' then
V_SControlType:='ENABLED';
If CmbControlTypeQuery.Text='不可編輯' then
V_SControlType:='DISABLED';
P_Filter:=P_Filter+' and CONTROLTYPE='+#39+V_SControlType+#39;
end;
query1.sql.text :=P_Filter;
query1.open;
If query1.Bof and query1.eof then
begin
Query1.AfterScroll(nil);
screen.Cursor :=crDefault;
end;
screen.Cursor :=crDefault;
end;
procedure TRgtSelectFormFunctionSelect.BtnSelectClick(Sender: TObject);
begin
ModalResult:=MrOk;
end;
procedure TRgtSelectFormFunctionSelect.BtnCancelClick(Sender: TObject);
begin
ModalResult:=MrCanCel;
end;
procedure TRgtSelectFormFunctionSelect.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Action:=CaFree;
end;
procedure TRgtSelectFormFunctionSelect.btn_sortClick(Sender: TObject);
begin
p_Sort(query1,DbgPrivFunction);
end;
procedure TRgtSelectFormFunctionSelect.EdtFuncSerialIdQueryFromKeyPress(
Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9',#8,#13]) then
Key:=#0;
end;
procedure TRgtSelectFormFunctionSelect.EdtFuncSerialIdQueryToKeyPress(
Sender: TObject; var Key: Char);
begin
If not (Key in ['0'..'9',#8,#13]) then
Key:=#0;
end;
procedure TRgtSelectFormFunctionSelect.SbSysFormCtrlListQueryClick(
Sender: TObject);
var
FormCtrlSelect :TRgtSelectFormCtrlSelect;
begin
FormCtrlSelect :=nil;
Try
FormCtrlSelect:=TRgtSelectFormCtrlSelect.create(self);
FormCtrlSelect.ShowModal;
P_QueryFORMNAME :=FormCtrlSelect.P_FORMNAME;
EdtFormCaptionQuery.Text :=FormCtrlSelect.P_QueryFORMNAME;
P_QueryCONTROLNAME :=FormCtrlSelect.P_CONTROLNAME;
EdtControlCaptionQuery.Text :=FormCtrlSelect.P_QueryCONTROLNAME;
Finally
FormCtrlSelect.Free;
end;
end;
procedure TRgtSelectFormFunctionSelect.Query1AfterScroll(
DataSet: TDataSet);
begin
if query1.Active then
begin
P_FUNCID :=query1.fieldbyname('FUNCID').asstring;
P_CONTROLTYPE :=query1.fieldbyname('CONTROLTYPE').asstring;
P_FUNCNAME :=query1.fieldbyname('FUNCNAME').asstring;
P_FUNCSERIALID :=query1.fieldbyname('FUNCSERIALID').asstring;
end;
end;
procedure TRgtSelectFormFunctionSelect.DbgPrivFunctionDblClick(
Sender: TObject);
begin
ModalResult:=MrOk;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -