You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
4.3 KiB
167 lines
4.3 KiB
unit ucadProvidencias;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
|
|
System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstCadastro, Data.DB, Vcl.Grids,
|
|
Vcl.DBGrids, Vcl.ExtCtrls, Vcl.DBCtrls, Vcl.StdCtrls, Vcl.Mask, Vcl.ComCtrls,
|
|
Vcl.Buttons,
|
|
System.ImageList, Vcl.ImgList;
|
|
|
|
// Tentando "Hackear" o TDBNavigator
|
|
type
|
|
THackDBNavigator = class(TDBNavigator);
|
|
|
|
type
|
|
TcadProvidencias = class(TmstCadastro)
|
|
ImageList1: TImageList;
|
|
dbgrid_providencias: TDBGrid;
|
|
DBMemo1: TDBMemo;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure pcClientesChange(Sender: TObject);
|
|
procedure dtsDBStateChange(Sender: TObject);
|
|
procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
|
|
procedure navPrincipalBeforeAction(Sender: TObject; Button: TNavigateBtn);
|
|
private
|
|
{ Private declarations }
|
|
procedure SetupHackedNavigator(const Navigator: TDBNavigator;
|
|
const Glyphs: TImageList);
|
|
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
|
|
public
|
|
id_prov: integer;
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
cadProvidencias: TcadProvidencias;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses udtmSystem, System.UITypes;
|
|
|
|
procedure TcadProvidencias.dtsDBStateChange(Sender: TObject);
|
|
begin
|
|
// inherited;
|
|
// DBLookupListBox1.Enabled := not(dtsDB.State in [dsEdit, dsInsert]);
|
|
grpDescricao.Enabled := (dtsDB.DataSet.State in [dsEdit, dsInsert]);
|
|
dbgrid_providencias.ReadOnly :=
|
|
not(dtsDB.DataSet.State in [dsEdit, dsInsert]);
|
|
|
|
end;
|
|
|
|
procedure TcadProvidencias.FormCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
dtmSystem.tblProvidencias.Open;
|
|
dtmSystem.tblInadimplencias.Open;
|
|
SetupHackedNavigator(navPrincipal, ImageList1);
|
|
id_prov := -1;
|
|
|
|
navPrincipal.Enabled := dtmSystem.VerificarPermissao('CBR.02.05');
|
|
end;
|
|
|
|
procedure TcadProvidencias.FormKeyDown(Sender: TObject; var Key: Word;
|
|
Shift: TShiftState);
|
|
begin
|
|
inherited;
|
|
if Key = VK_ESCAPE then
|
|
begin
|
|
Key := 0;
|
|
Close;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadProvidencias.navPrincipalBeforeAction(Sender: TObject;
|
|
Button: TNavigateBtn);
|
|
begin
|
|
case Button of
|
|
nbPost:
|
|
begin
|
|
if dtmSystem.tblProvidenciasTP_FORCAAGENDA.AsString = '' then
|
|
begin
|
|
Messagedlg
|
|
('Por favor escolha se a providência irá forçar agendamento ou não.',
|
|
mtWarning, [mbOk], 0);
|
|
abort;
|
|
end;
|
|
end;
|
|
end;
|
|
inherited;
|
|
end;
|
|
|
|
procedure TcadProvidencias.pcClientesChange(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
case pcClientes.ActivePageIndex of
|
|
0:
|
|
begin
|
|
dtsDB.DataSet := dtmSystem.tblProvidencias;
|
|
end;
|
|
1:
|
|
begin
|
|
dtsDB.DataSet := dtmSystem.tblInadimplencias;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TcadProvidencias.SetupHackedNavigator(const Navigator: TDBNavigator;
|
|
const Glyphs: TImageList);
|
|
const
|
|
Captions: array [TNavigateBtn] of string = ('Primeiro', 'Anterior', 'Próximo',
|
|
'Último', 'Adicionar', 'Excluir', 'Alterar', 'Confirmar', 'Cancelar',
|
|
'Atualizar', 'Aplicar Atualizações', 'Cancelar Atualizãções');
|
|
(* Captions : array[TNavigateBtn] of string =
|
|
('First', 'Prior', 'Next', 'Last', 'Insert',
|
|
'Delete', 'Edit', 'Post', 'Cancel', 'Refresh'); *)
|
|
var
|
|
btn: TNavigateBtn;
|
|
begin
|
|
// função propriamente dita para "hackear" o navigator
|
|
for btn := Low(TNavigateBtn) to High(TNavigateBtn) do
|
|
with THackDBNavigator(Navigator).Buttons[btn] do
|
|
begin
|
|
// from the Captions const array
|
|
Caption := Captions[btn];
|
|
|
|
// the number of images in the Glyph property
|
|
NumGlyphs := 1;
|
|
// Remove the old glyph.
|
|
Glyph := nil;
|
|
// Assign the custom one
|
|
Glyphs.GetBitmap(Integer(btn), Glyph);
|
|
// gylph above text
|
|
Layout := blGlyphTop;
|
|
|
|
Font.Style := Font.Style - [fsbold];
|
|
end;
|
|
|
|
end;
|
|
|
|
procedure TcadProvidencias.WMMoving(var Msg: TWMMoving);
|
|
var
|
|
workArea: TRect;
|
|
begin
|
|
workArea := Screen.WorkareaRect;
|
|
|
|
with Msg.DragRect^ do
|
|
begin
|
|
if left < workArea.left then
|
|
OffsetRect(Msg.DragRect^, workArea.left - left, 0);
|
|
|
|
if top < workArea.top then
|
|
OffsetRect(Msg.DragRect^, 0, workArea.top - top);
|
|
|
|
if Right > workArea.Right then
|
|
OffsetRect(Msg.DragRect^, workArea.Right - Right, 0);
|
|
|
|
if Bottom > workArea.Bottom then
|
|
OffsetRect(Msg.DragRect^, 0, workArea.Bottom - Bottom);
|
|
end;
|
|
|
|
end;
|
|
|
|
end.
|