📄 unitchoosesdline.pas
字号:
unit UnitChooseSDLine;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, DB, ADODB;
type
TForm_ChooseSDLine = class(TForm)
DBGrid1: TDBGrid;
B_OK: TButton;
B_CANCEL: TButton;
D_Lines: TDataSource;
Q_Lines: TADOQuery;
E_SelectLine: TEdit;
procedure FormCreate(Sender: TObject);
procedure B_CANCELClick(Sender: TObject);
procedure B_OKClick(Sender: TObject);
procedure E_SelectLineChange(Sender: TObject);
procedure E_SelectLineKeyPress(Sender: TObject; var Key: Char);
procedure FormShow(Sender: TObject);
procedure E_SelectLineKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBGrid1DblClick(Sender: TObject);
private
FIsOk: Boolean;
FUnitID: Integer;
{ Private declarations }
public
{ Public declarations }
property IsOk:Boolean read FIsOk;
property UnitID:Integer read FUnitID write FUnitID;
end;
var
Form_ChooseSDLine: TForm_ChooseSDLine;
function ChooseSDLine(const aUnitID:Integer; var aLineId:Integer;
var aLineName:string):Boolean;
implementation
uses UnitDMLinks, ADODBTools, WinControl;
function ChooseSDLine(const aUnitID:Integer; var aLineId:Integer;
var aLineName:string):Boolean;
begin
with TForm_ChooseSDLine.Create(nil) do
begin
try
UnitID:=aUnitID;
ShowModal;
Result:=IsOk;
if Result then
begin
aLineId:=Q_Lines.FieldByName('LineID').AsInteger;
aLineName:=Q_Lines.FieldByName('LineName').AsString;
end
else
begin
aLineId:=-1;
aLineName:='';
end;
finally
Free;
end;
end;
end;
{$R *.dfm}
procedure TForm_ChooseSDLine.FormCreate(Sender: TObject);
begin
FIsOk:=False;
end;
procedure TForm_ChooseSDLine.B_CANCELClick(Sender: TObject);
begin
Close;
end;
procedure TForm_ChooseSDLine.B_OKClick(Sender: TObject);
begin
if (not Q_Lines.Eof)and(Q_Lines.FieldByName('LineID').AsString<>'') then
begin
FIsOk:=True;
Close;
end;
end;
procedure TForm_ChooseSDLine.E_SelectLineChange(Sender: TObject);
begin
with Q_Lines do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_LinesLayer');
SQL.Add('where UnitID=:UnitID');
if E_SelectLine.Text<>'' then
SQL.Add('and LineID=:LineID');
SQL.Add('order by LineID');
SetParamValue(Q_Lines, 'UnitID', UnitID);
if E_SelectLine.Text<>'' then
SetParamValue(Q_Lines, 'LineID', StrToInt(E_SelectLine.Text));
Open;
end;
end;
procedure TForm_ChooseSDLine.E_SelectLineKeyPress(Sender: TObject;
var Key: Char);
begin
IntegerEditKeyPress(TEdit(Sender), Key);
end;
procedure TForm_ChooseSDLine.FormShow(Sender: TObject);
begin
E_SelectLine.OnChange(E_SelectLine);
end;
procedure TForm_ChooseSDLine.E_SelectLineKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if Key=vk_return then B_OK.OnClick(B_OK);
end;
procedure TForm_ChooseSDLine.DBGrid1DblClick(Sender: TObject);
begin
B_OK.OnClick(B_OK);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -