interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls, ExtCtrls, ToolWin, ImgList, Db, DBTables, IniFiles,
IBCustomDataSet, IBQuery, IBDatabase, StdCtrls, DBXpress, SqlExpr,
AppEvnts;
type
TForm_Principal = class(TForm)
MainMenu: TMainMenu;
CadastroMenu: TMenuItem;
EspecialidadesItem: TMenuItem;
ArquivoMenu: TMenuItem;
PropriedadesItem: TMenuItem;
ConfigurarImpressoraItem: TMenuItem;
N2: TMenuItem;
Sair1: TMenuItem;
LancamentoMenu: TMenuItem;
AjudaMenu: TMenuItem;
LinhaStatus: TStatusBar;
Timer1: TTimer;
ImageList: TImageList;
CoolBar: TCoolBar;
ToolBMenu: TToolBar;
ToolBCadastro: TToolButton;
ToolBEspecialidades: TToolButton;
ToolBControle: TToolButton;
ToolBImpressao: TToolButton;
ToolButton4: TToolButton;
ToolBSobre: TToolButton;
ExibirMenu: TMenuItem;
BarradeFerramentasItem: TMenuItem;
BarradeEstatusItem: TMenuItem;
JanelaMenu: TMenuItem;
EmCascataItem: TMenuItem;
LadoaLadoItem: TMenuItem;
OrganizariconesItem: TMenuItem;
N16: TMenuItem;
MaximizarTodasItem: TMenuItem;
MinimizarTodasItem: TMenuItem;
N17: TMenuItem;
ProximaItem: TMenuItem;
AnteriorItem: TMenuItem;
FecharItem: TMenuItem;
FecharTudoItem: TMenuItem;
N18: TMenuItem;
Pacientes2: TMenuItem;
N1: TMenuItem;
ControlePacinetes1: TMenuItem;
N3: TMenuItem;
ToolButton1: TToolButton;
ToolButton3: TToolButton;
ToolButton6: TToolButton;
OpenDialog: TOpenDialog;
PrinterSetupDialog1: TPrinterSetupDialog;
BackupdoSistema1: TMenuItem;
SQLConnection: TSQLConnection;
Finaneiro1: TMenuItem;
N5: TMenuItem;
Caminho1: TMenuItem;
N6: TMenuItem;
Fornecedor1: TMenuItem;
N7: TMenuItem;
Pneus1: TMenuItem;
Cheques1: TMenuItem;
N8: TMenuItem;
Dinheiro1: TMenuItem;
N9: TMenuItem;
ContasPagarContasPagas1: TMenuItem;
Popup_Cadastro: TPopupMenu;
Popup_Controle: TPopupMenu;
Popup_Financeiro: TPopupMenu;
Popup_Ferramentas: TPopupMenu;
Motorista1: TMenuItem;
N10: TMenuItem;
ransportadora1: TMenuItem;
N11: TMenuItem;
Caminho2: TMenuItem;
N12: TMenuItem;
Fornecedor2: TMenuItem;
Carregamento1: TMenuItem;
N13: TMenuItem;
Pneus2: TMenuItem;
Cheques2: TMenuItem;
N14: TMenuItem;
Dinheiro2: TMenuItem;
N15: TMenuItem;
ContasPagarContasPagas2: TMenuItem;
RelatriodoSistema1: TMenuItem;
N4: TMenuItem;
ConfigurarImpressora1: TMenuItem;
N19: TMenuItem;
AcertoViagem1: TMenuItem;
N20: TMenuItem;
AcertoViagem2: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure CheckLastKey;
procedure Timer1Timer(Sender: TObject);
procedure Sair1Click(Sender: TObject);
procedure BarradeFerramentasItemClick(Sender: TObject);
procedure BarradeEstatusItemClick(Sender: TObject);
procedure EmCascataItemClick(Sender: TObject);
procedure LadoaLadoItemClick(Sender: TObject);
procedure OrganizariconesItemClick(Sender: TObject);
procedure MaximizarTodasItemClick(Sender: TObject);
procedure MinimizarTodasItemClick(Sender: TObject);
procedure ProximaItemClick(Sender: TObject);
procedure AnteriorItemClick(Sender: TObject);
procedure EspecialidadesItemClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FecharTudoItemClick(Sender: TObject);
procedure FecharItemClick(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Pacientes2Click(Sender: TObject);
procedure ConfigurarImpressoraItemClick(Sender: TObject);
procedure PropriedadesItemClick(Sender: TObject);
procedure BackupdoSistema1Click(Sender: TObject);
procedure ToolBCadastroClick(Sender: TObject);
procedure ToolBEspecialidadesClick(Sender: TObject);
procedure ToolBControleClick(Sender: TObject);
procedure ToolBImpressaoClick(Sender: TObject);
procedure Caminho1Click(Sender: TObject);
procedure Fornecedor1Click(Sender: TObject);
procedure ControlePacinetes1Click(Sender: TObject);
procedure Pneus1Click(Sender: TObject);
procedure Dinheiro1Click(Sender: TObject);
procedure Cheques1Click(Sender: TObject);
procedure ContasPagarContasPagas1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AcertoViagem1Click(Sender: TObject);
private
{ Private declarations }
procedure ShowHint(Sender: TObject);
procedure ActivaMenuItems(Sender: TObject);
procedure SetDatabaseAlias;
public
{ Public declarations }
Path_Banco: String;
function DataSetApplyUpdates(DataSet: TDataSet; Apply: Boolean): Boolean;
function CriticaEdicao(DSOrigem: TDataSource; DoQue, AntesDe: String):boolean;
end;
var
Form_Principal: TForm_Principal;
implementation
uses UFuncoes, Unit_Apresentacao, Unit_Backup, Unit_Configuracao,
Unit_Transportadora, Unit_Caminhao, Unit_Motorista, Unit_Fornecedor,
Unit_Carregamento, Unit_Pneus, Unit_Dinheiro, Unit_Cheques,
Unit_ContaPagar, Unit_AcertoViagem;
{$R *.DFM}
{ TF_Menu }
procedure TForm_Principal.ShowHint(Sender: TObject);
begin
LinhaStatus.Panels.Items[0].Text := Application.Hint;
end;
procedure TForm_Principal.FormCreate(Sender: TObject);
var
ArqIni: TIniFile;
begin
ArqIni := tIniFile.Create(DataDirectory +'Prog_Transp.Ini');
CoolBar.Visible := ArqIni.ReadBool('Barras', 'Ferramenta', True);
BarradeFerramentasItem.Checked := ArqIni.ReadBool('Barras', 'Ferramenta', True);
LinhaStatus.Visible := ArqIni.ReadBool('Barras', 'Status', True);
BarradeEstatusItem.Checked := ArqIni.ReadBool('Barras', 'Status', True);
Height := ArqIni.ReadInteger('Posicao', 'Height', 575);
Left := ArqIni.ReadInteger('Posicao', 'Left', 0);
Width := ArqIni.ReadInteger('Posicao', 'Width', 800);
Top := ArqIni.ReadInteger('Posicao', 'Top', 0);
ArqIni.Free;
CheckLastKey;
{ Seta Mensagens para a barra de estatus }
Application.OnHint := ShowHint;
{ Seta a janela para considerações de século }
TwoDigitYearCenturyWindow := 50;
{ Seta o formato da data }
ShortDateFormat := 'DD/MM/YYYY';
{ O Objeto Screen manipula a ativação de menus }
Screen.OnActiveFormChange := ActivaMenuItems;
{ Inicia o Banco de Dados. }
SetDatabaseAlias;
end;
procedure TForm_Principal.CheckLastKey;
var KS : TkeyboardState;
begin
LinhaStatus.Panels[4].text := DateToStr(Date);
LinhaStatus.Panels[5].text := TimeToStr(Time);
GetKeyboardState(KS);
If Odd( Ks[VK_CAPITAL]) then
LinhaStatus.Panels[1].text := 'CAPS'
else
LinhaStatus.Panels[1].text := '';
If Odd( Ks[VK_INSERT]) then
LinhaStatus.Panels[2].text := 'INS'
else
LinhaStatus.Panels[2].text := '';
If Odd( Ks[VK_NUMLOCK]) then
LinhaStatus.Panels[3].text := 'NLOCK'
else
LinhaStatus.Panels[3].text := '';
end;
procedure TForm_Principal.Timer1Timer(Sender: TObject);
begin
CheckLastKey;
end;
procedure TForm_Principal.Sair1Click(Sender: TObject);
begin
Close;
end;
procedure TForm_Principal.BarradeFerramentasItemClick(Sender: TObject);
var
ArqIni : TIniFile;
begin
ArqIni := TIniFile.Create(DataDirectory +'Prog_Transp.Ini');
try
if BarradeFerramentasItem.Checked then
begin
CoolBar.Visible := False;
BarradeFerramentasItem.Checked := False;
ArqIni.WriteBool('Barras', 'Ferramenta', False);
end
else
begin
CoolBar.Visible := True;
BarradeFerramentasItem.Checked := True;
ArqIni.WriteBool('Barras', 'Ferramenta', True);
end;
finally
ArqIni.Free;
end;
end;
procedure TForm_Principal.BarradeEstatusItemClick(Sender: TObject);
var
ArqIni : TIniFile;
begin
ArqIni := TIniFile.Create(DataDirectory +'Prog_Transp.Ini');
try
if BarradeEstatusItem.Checked then
begin
LinhaStatus.Visible := False;
BarradeEstatusItem.Checked := False;
ArqIni.WriteBool('Barras', 'Status', False);
end
else
begin
LinhaStatus.Visible := True;
BarradeEstatusItem.Checked := True;
ArqIni.WriteBool('Barras', 'Status', True);
end;
finally
ArqIni.Free;
end;
end;
procedure TForm_Principal.EmCascataItemClick(Sender: TObject);
begin
Cascade;
end;
procedure TForm_Principal.LadoaLadoItemClick(Sender: TObject);
begin
TileMode := tbVertical;
Tile;
end;
procedure TForm_Principal.OrganizariconesItemClick(Sender: TObject);
begin
ArrangeIcons;
end;
procedure TForm_Principal.MaximizarTodasItemClick(Sender: TObject);
var
nContador: Integer;
begin
for nContador := 0 to MDIChildCount-1 do
MDIChildren[nContador].WindowState := wsNormal;
end;
procedure TForm_Principal.MinimizarTodasItemClick(Sender: TObject);
var
nContador: Integer;
begin
for nContador := MDIChildCount-1 downto 0 do
MDIChildren[nContador].WindowState := wsMinimized;
end;
procedure TForm_Principal.ProximaItemClick(Sender: TObject);
var Ativo : Tform;
begin
if MDIChildCount > 0 then begin
Next;
Ativo := ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.AnteriorItemClick(Sender: TObject);
var Ativo : tform;
begin
if MDIChildCount > 0 then begin
Previous;
Ativo := ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.EspecialidadesItemClick(Sender: TObject);
var
Ativo : TForm;
Form_Transportadora : TForm_Transportadora;
begin
if Application.findcomponent('TForm_Transportadora') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Transportadora, Form_Transportadora);
with Form_Transportadora do begin
Top := 0;
Left := 0;
Name := 'TForm_Transportadora';
RadioGroup1.ItemIndex := 1;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Transportadora')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MDIChildCount > 0 then
begin
ShowMessage('Feche a(s) janela(s) antes de finalizar!');
CanClose := False;
Exit;
end;
if Application.MessageBox ('Deseja finalizar o sistema e retornar ao Windows???', 'Confirmação',
Mb_YesNo + mb_IconQuestion) = IDYES then
Canclose := True
else
CanClose := False;
end;
procedure TForm_Principal.FecharTudoItemClick(Sender: TObject);
var i: byte;
begin
for i := MDIChildCount -1 downto 0 do
MDIChildren[i].Close;
end;
procedure TForm_Principal.FecharItemClick(Sender: TObject);
begin
ActiveMDIChild.Close;
end;
procedure TForm_Principal.ActivaMenuItems(Sender: TObject);
var HasChildren: boolean;
begin
HasChildren := MDIChildCount > 0;
FecharItem.Enabled := HasChildren;
FecharTudoItem.Enabled := HasChildren;
EmCascataItem.Enabled := HasChildren;
LadoaLadoItem.Enabled := HasChildren;
OrganizarIconesItem.Enabled := HasChildren;
MaximizarTodasItem.Enabled := HasChildren;
MinimizarTodasItem.Enabled := HasChildren;
ProximaItem.Enabled := HasChildren;
AnteriorItem.Enabled := HasChildren;
end;
procedure TForm_Principal.FormDestroy(Sender: TObject);
begin
Screen.OnActiveFormChange := nil;
{ Fecha o Banco de Dados. }
SQLConnection.Close;
end;
function TForm_Principal.CriticaEdicao(DSOrigem: TDataSource; DoQue,
AntesDe: String): boolean;
begin
if DSOrigem.State in [dsEdit,dsInsert] then
begin
MessageDlg('Cancele a edição (ou inclusão) '+ DoQue + ' antes de '+
AntesDe, mtError, [mbOK], 0);
Result := True
end
else
Result := False;
end;
function TForm_Principal.DataSetApplyUpdates(DataSet: TDataSet; Apply: Boolean): Boolean;
begin
Result := True;
with TDBDataSet(DataSet) do
begin
if (State in dsEditModes) or UpdatesPending then
begin
if Apply then
begin
Database.ApplyUpdates([DataSet as TDBDataSet]);
{ Always call CancelUpdates to remove any discard changes }
CancelUpdates;
end
else
begin
if (MessageDlg('Deseja Cancelar as Mudanças não Salvas?', mtConfirmation,
[mbYes, mbCancel], 0) = mrYes) then
CancelUpdates
else
Result := False;
end;
end;
end;
end;
procedure TForm_Principal.Pacientes2Click(Sender: TObject);
var
Ativo: TForm;
Form_Motorista : TForm_Motorista;
begin
if Application.findcomponent('TForm_Motorista') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Motorista, Form_Motorista);
with Form_Motorista do begin
Top := 0;
Left := 0;
Name := 'TForm_Motorista';
RadioGroup1.ItemIndex := 1;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Motorista')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.SetDatabaseAlias;
var
ArqIni : tIniFile;
begin
{ Esta function escolha de database para difente alias }
Screen.Cursor := crHourGlass;
try
SQLConnection.Close;
ArqIni := tIniFile.Create(DataDirectory +'Prog_Transp.Ini');
Path_Banco := ArqIni.ReadString('Banco', 'Caminho', '');
SQLConnection.Params.Insert(1,'DataBase='+ ArqIni.ReadString('Banco', 'Caminho', ''));//AliasName);
SqlConnection.Params.Insert(3,'User_Name='+ ArqIni.ReadString('Banco', 'Usuario', '') );
SqlConnection.Params.Insert(4,'Password='+ ArqIni.ReadString('Banco', 'Senha', '') );
ArqIni.Free;
SqlConnection.Open;
Screen.Cursor := crDefault;
except
Form_Configuracao := TForm_Configuracao.Create(Self);
with Form_Configuracao do begin
Notebook1.ActivePage := 'Mensagem';
ShowModal;
if ModalResult = mrCancel then
Application.Terminate
else
begin
Free;
SetDatabaseAlias;
end;
end;
end;
end;
procedure TForm_Principal.ConfigurarImpressoraItemClick(Sender: TObject);
begin
PrinterSetupDialog1.Execute;
end;
procedure TForm_Principal.PropriedadesItemClick(Sender: TObject);
begin
Form_Apresentacao := TForm_Apresentacao.Create(Self);
with Form_Apresentacao do begin
try
ShowModal;
finally
Free;
end;
end;
end;
procedure TForm_Principal.BackupdoSistema1Click(Sender: TObject);
begin
Form_Backup := TForm_Backup.Create(Self);
with Form_Backup do begin
try
ShowModal;
finally
Free;
end;
end;
end;
procedure TForm_Principal.ToolBCadastroClick(Sender: TObject);
begin
ToolBCadastro.Down := True;
ToolBCadastro.CheckMenuDropdown;
end;
procedure TForm_Principal.ToolBEspecialidadesClick(Sender: TObject);
begin
ToolBEspecialidades.Down := True;
ToolBEspecialidades.CheckMenuDropdown;
end;
procedure TForm_Principal.ToolBControleClick(Sender: TObject);
begin
ToolBControle.Down := True;
ToolBControle.CheckMenuDropdown;
end;
procedure TForm_Principal.ToolBImpressaoClick(Sender: TObject);
begin
ToolBImpressao.Down := True;
ToolBImpressao.CheckMenuDropdown;
end;
procedure TForm_Principal.Caminho1Click(Sender: TObject);
var
Ativo: TForm;
Form_Caminhao : TForm_Caminhao;
begin
if Application.findcomponent('TForm_Caminhao') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Caminhao, Form_Caminhao);
with Form_Caminhao do begin
Top := 0;
Left := 0;
Name := 'TForm_Caminhao';
RadioGroup1.ItemIndex := 1;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Caminhao')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.Fornecedor1Click(Sender: TObject);
var
Ativo: TForm;
Form_Fornecedor: TForm_Fornecedor;
begin
if Application.findcomponent('TForm_Fornecedor') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Fornecedor, Form_Fornecedor);
with Form_Fornecedor do begin
Top := 0;
Left := 0;
Name := 'TForm_Fornecedor';
RadioGroup1.ItemIndex := 1;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Fornecedor')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.ControlePacinetes1Click(Sender: TObject);
var
Ativo: TForm;
Form_Carregamento : TForm_Carregamento;
begin
if Application.findcomponent('TForm_Carregamento') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Carregamento, Form_Carregamento);
with Form_Carregamento do begin
Top := 0;
Left := 0;
Name := 'TForm_Carregamento';
RadioGroup1.ItemIndex := 3;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Carregamento')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.Pneus1Click(Sender: TObject);
var
Ativo: TForm;
Form_Pneus: TForm_Pneus;
begin
if Application.findcomponent('TForm_Pneus') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Pneus, Form_Pneus);
with Form_Pneus do begin
Top := 0;
Left := 0;
Name := 'TForm_Pneus';
RadioGroup1.ItemIndex := 2;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Pneus')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.Dinheiro1Click(Sender: TObject);
var
Ativo: TForm;
Form_Dinheiro : TForm_Dinheiro;
begin
if Application.findcomponent('TForm_Dinheiro') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Dinheiro, Form_Dinheiro);
with Form_Dinheiro do begin
Top := 0;
Left := 0;
Name := 'TForm_Dinheiro';
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Dinheiro')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.Cheques1Click(Sender: TObject);
var
Ativo: TForm;
Form_Cheques : TForm_Cheques;
begin
if Application.findcomponent('TForm_Cheques') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_Cheques, Form_Cheques);
with Form_Cheques do begin
Top := 0;
Left := 0;
Name := 'TForm_Cheques';
RadioGroup1.ItemIndex := 0;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_Cheques')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.ContasPagarContasPagas1Click(Sender: TObject);
var
Ativo: TForm;
Form_ContaPagar : TForm_ContaPagar;
begin
if Application.findcomponent('TForm_ContaPagar') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_ContaPagar, Form_ContaPagar);
with Form_ContaPagar do begin
Top := 0;
Left := 0;
Name := 'TForm_ContaPagar';
RadioGroup1.ItemIndex := 0;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_ContaPagar')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
procedure TForm_Principal.FormClose(Sender: TObject;
var Action: TCloseAction);
var
ArqIni : TIniFile;
begin
ArqIni := TIniFile.Create(DataDirectory +'Prog_Transp.Ini');
ArqIni.WriteInteger('Posicao', 'Height', Height);
ArqIni.WriteInteger('Posicao', 'Left', Left);
ArqIni.WriteInteger('Posicao', 'Width', Width);
ArqIni.WriteInteger('Posicao', 'Top', Top);
ArqIni.Free;
end;
procedure TForm_Principal.AcertoViagem1Click(Sender: TObject);
var
Ativo: TForm;
Form_AcertoViagem : TForm_AcertoViagem;
begin
if Application.findcomponent('TForm_AcertoViagem') = nil then begin
Screen.Cursor := crHourglass;
Application.Createform(TForm_AcertoViagem, Form_AcertoViagem);
with Form_AcertoViagem do begin
Top := 0;
Left := 0;
Name := 'TForm_AcertoViagem';
RadioGroup1.ItemIndex := 3;
end;
Screen.Cursor := crDefault;
end else begin
TForm( Application.findcomponent('TForm_AcertoViagem')).BringToFront;
Ativo := Form_Principal.ActiveMDIChild;
Ativo.WindowState := wsNormal;
end;
end;
end.
Nenhum comentário:
Postar um comentário