sexta-feira, 8 de maio de 2015

Pas do principal de um programa de transportadora para Aula dia 8/5/2015

unit Unit_Principal;

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