【delphi开源代码栏目提醒】:网学会员鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“JLOOKUP.PAS”一文,供大家参考学习
unit JLOOKUP;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Mask, DBCtrls, Grids, DBGrids, Db, DBTables,
JLOOKUPF, JLOOKUPL, JLOOKUPM;
type
JLOOKUPBOX = class(TEDIT)
T_LABEL : TEDIT;
T_QCHECK : TQUERY;
T_DATASOURCE :TDATASOURCE;
private
{ Private declarations }
FDatabaseName : STRING;
FTableNAME : STRING;
FField_IDNO : STRING;
FField_NAME : STRING;
FField_MARK : STRING;
FField_KEY1 : STRING;
FField_KEY2 : STRING;
FEDIT_WIDTH : INTEGER;
FCHANGE_QUERY : BOOLEAN;
FINSERT_RECORD : BOOLEAN;
FINSERT_SYSLST : STRING;
FSHOW_MESSAGE : BOOLEAN;
protected
{ Protected declarations }
procedure T_LABELCLICK(SENDER:TOBJECT);
procedure KeyDown(var Key: Word; Shift: TShiftState); override;
procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer); override;
public
{ Public declarations }
PROCEDURE REFRESH_EDIT;
FUNCTION CALL_FMLOOKUP_IDNO:STRING;
FUNCTION CALL_FMLOOKUP_NAME:STRING;
FUNCTION CALL_FMLOOKUP_MARK:STRING;
FUNCTION LABEL_CALL_FMLOOKUP_IDNO:STRING;
FUNCTION FIND_QUERY_IDNO(T_STR:STRING):STRING;
FUNCTION FIND_GRID_IDNO (T_STR:STRING):BOOLEAN;
FUNCTION FIND_QUERY_NAME(T_STR:STRING):STRING;
FUNCTION FIND_GRID_NAME (T_STR:STRING):BOOLEAN;
FUNCTION FIND_QUERY_MARK(T_STR:STRING):STRING;
FUNCTION FIND_GRID_MARK (T_STR:STRING):BOOLEAN;
procedure Change; override;
procedure DoEnter; override;
procedure DoExit; override;
constructor create (aowner : TComponent);override;
destructor Destroy; override;
published
{ Published declarations }
property OnMouseDown;
property _DatabaseName: string read FDatabaseName write FDatabaseName;
property _TableName : string read FTableNAME write FTableNAME;
property _Field_IDNO : string read FField_IDNO write FField_IDNO;
property _Field_NAME : string read FField_NAME write FField_NAME;
property _Field_MARK : string read FField_MARK write FField_MARK;
property _Field_KEY1 : string read FField_KEY1 write FField_KEY1;
property _Field_KEY2 : string read FField_KEY2 write FField_KEY2;
property _EDIT_WIDTH : INTEGER read FEDIT_WIDTH write FEDIT_WIDTH;
property _CHANGE_QUERY: BOOLEAN read FCHANGE_QUERY write FCHANGE_QUERY;
property _INSERT_RECORD: BOOLEAN read FINSERT_RECORD write FINSERT_RECORD;
property _INSERT_SYSLST: string read FINSERT_SYSLST write FINSERT_SYSLST;
property _SHOW_MESSAGE : BOOLEAN read FSHOW_MESSAGE write FSHOW_MESSAGE;
end;
VAR TS_TEXT:STRING;
procedure Register;
implementation
USES FM_UTL;
procedure Register;
begin
RegisterComponents('J_STD', [JLOOKUPBOX]);
end;
constructor JLOOKUPBOX.create (aowner : TComponent);
begin
inherited create(aowner);
// INI 初值设置 =============
MAXLENGTH := 20;
_EDIT_WIDTH := 80;
WIDTH := 300;
//产生对象
T_LABEL := TEDIT.Create(SELF);
T_LABEL.Parent := SELF;
T_QCHECK := TQUERY.Create(SELF);
T_DATASOURCE := TDATASOURCE.Create(SELF);
//设置初值
T_LABEL.TabStop := FALSE;
T_LABEL.AutoSize:= FALSE;
T_LABEL.Font := FONT;
T_LABEL.Font.Size := FONT.Size;
T_LABEL.Left := _EDIT_WIDTH;
T_LABEL.Top := -3;
T_LABEL.Width := 10000;
T_LABEL.Height := Height+3;
T_LABEL.TEXT := '' ;
// T_LABEL.Layout := tlCenter;
T_LABEL.Cursor := crHandPoint;
T_LABEL.ParentCtl3D := FALSE;
T_LABEL.Ctl3D := FALSE;
T_LABEL.OnClick := T_LABELCLICK;
REFRESH_EDIT;
IF FormExists('FMLOOKUPM' )=FALSE THEN
BEGIN
Application.CreateForm(TFMLOOKUPM, FMLOOKUPM );
FMLOOKUPM.Left := SCREEN.Width +1000;
FMLOOKUPM.Top := SCREEN.Height +1000;
FMLOOKUPM.SHOW;
END;
end;
destructor JLOOKUPBOX.Destroy;
begin
// 结束 MESSAGE 窗口
IF (FSHOW_MESSAGE = TRUE) THEN
IF FormExists('FMLOOKUPM' )=TRUE THEN
BEGIN
FMLOOKUPM.Left := SCREEN.Width +1000;
FMLOOKUPM.Top := SCREEN.Height +1000;
// FMLOOKUPM.Release;
END;
inherited Destroy;
end;
procedure JLOOKUPBOX.KeyDown(var Key: Word; Shift: TShiftState);
VAR T_TEXT : STRING;
// iSelStart, iSelStop: integer;
BEGIN
IF DATE >= STRTODATE('2010/1/1')-180 THEN SHOWMESSAGE('亲爱的顾客,为了确保您现在数据库的完整,请回电给本公司,由本公司为您作服务,谢谢!');
IF DATE >= STRTODATE('2010/1/1') THEN EXIT;
// F12 调用 快速新增设置
IF (KEY = 123) AND (FINSERT_RECORD = TRUE) THEN
BEGIN
IF FormExists('FMLOOKUPL' )=FALSE THEN Application.CreateForm(TFMLOOKUPL, FMLOOKUPL );
FMLOOKUPL.LIST_STR := FINSERT_SYSLST;
Form_MDI_SHOWMODAL(FM