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.
 

122 lines
3.1 KiB

unit ufrmVerIE;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstMaster, Vcl.StdCtrls, Vcl.ComCtrls,
Data.DB, ZAbstractRODataset, ZAbstractDataset, ZAbstractTable, ZDataset;
type
TConsisteInscricaoEstadual = function(const Insc, UF: AnsiString)
: Integer; stdcall;
type
TfrmVerIE = class(TmstMaster)
edt_IE: TEdit;
lbl_IE: TLabel;
lbl_UF: TLabel;
cb_UF: TComboBox;
btn_verificar: TButton;
procedure FormCreate(Sender: TObject);
procedure btn_verificarClick(Sender: TObject);
private
procedure WMMoving(var Msg: TWMMoving); message WM_MOVING;
{ Private declarations }
public
{ Public declarations }
end;
var
frmVerIE: TfrmVerIE;
implementation
{$R *.dfm}
uses udtmSystem, System.UITypes;
procedure TfrmVerIE.btn_verificarClick(Sender: TObject);
// código que pega na dll como verificar o IE
var
IRet: Integer;
LibHandle: THandle;
ConsisteInscricaoEstadual: TConsisteInscricaoEstadual;
begin
try
begin
LibHandle := LoadLibrary('DllInscE32.Dll');
if LibHandle <= HINSTANCE_ERROR then
raise Exception.Create('Dll não carregada');
@ConsisteInscricaoEstadual := GetProcAddress(LibHandle,
'ConsisteInscricaoEstadual');
if @ConsisteInscricaoEstadual = nil then
raise Exception.Create('Entrypoint Download não encontrado na Dll');
IRet := ConsisteInscricaoEstadual(edt_IE.Text, cb_UF.Text);
dtmSystem.tblEstados.Locate('TX_SIGLA', cb_UF.Text, []);
if IRet = 0 then
MessageDlg('Inscrição válida para ' +
dtmSystem.tblEstadosTX_NOME.AsString, mtInformation, [mbOk], 0)
else if IRet = 1 then
MessageDlg('Inscrição inválida para ' +
dtmSystem.tblEstadosTX_NOME.AsString, mtError, [mbOk], 0)
else
MessageDlg('Parâmetros inválidos', mtError, [mbOk], 0);
edt_IE.SetFocus;
end;
finally
FreeLibrary(LibHandle);
end;
end;
procedure TfrmVerIE.FormCreate(Sender: TObject);
begin
inherited;
with dtmSystem do
begin
qryConsulta.SQL.Text := 'SELECT * FROM SYS_ESTADOS';
// faz uma pesquisa na tabela estados pra montar o combo box
qryConsulta.Open;
qryConsulta.First;
while not qryConsulta.Eof do
begin
cb_UF.Items.Add(qryConsulta.FieldByName('TX_SIGLA').AsString);
qryConsulta.Next;
end;
if not tblCHGEmpresa.IsEmpty then
begin
edt_IE.Text := tblCHGEmpresaTX_IE.AsString;
cb_UF.Text := tblEstadosTX_SIGLA.AsString;
end;
end;
end;
procedure TfrmVerIE.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.