mirror of
https://github.com/rickrd/crud-delphi.git
synced 2025-12-19 09:03:43 +01:00
added CRUD interface and functions
This commit is contained in:
parent
23b1f32d6e
commit
c360682c70
21
Project1.dpr
Normal file
21
Project1.dpr
Normal file
@ -0,0 +1,21 @@
|
||||
program Project1;
|
||||
|
||||
uses
|
||||
Vcl.Forms,
|
||||
UnitFormSplash in 'UnitFormSplash.pas' {FormSplash},
|
||||
UnitLista in 'UnitLista.pas',
|
||||
UnitFormPadrao in 'UnitFormPadrao.pas' {FormPadrao},
|
||||
UnitFormCidade in 'UnitFormCidade.pas' {FormCidade},
|
||||
UnitFormEstado in 'UnitFormEstado.pas' {FormEstado},
|
||||
UnitFormPais in 'UnitFormPais.pas' {FormPais},
|
||||
UnitFormGrid in 'UnitFormGrid.pas' {FormGrid},
|
||||
UnitDados in 'UnitDados.pas';
|
||||
|
||||
{$R *.res}
|
||||
|
||||
begin
|
||||
Application.Initialize;
|
||||
Application.MainFormOnTaskbar := True;
|
||||
Application.CreateForm(TFormSplash, FormSplash);
|
||||
Application.Run;
|
||||
end.
|
||||
@ -15,8 +15,8 @@
|
||||
<Transaction>2018/08/02 11:51:22.000.511,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.pas=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\UnitFormCidade.pas</Transaction>
|
||||
<Transaction>2018/08/02 11:54:03.000.448,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/03 07:57:41.000.908,=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.pas</Transaction>
|
||||
<Transaction>2018/08/03 07:59:28.000.101,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.dfm=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\UnitFormEstado.dfm</Transaction>
|
||||
<Transaction>2018/08/03 07:59:28.000.101,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.pas=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\UnitFormEstado.pas</Transaction>
|
||||
<Transaction>2018/08/03 07:59:28.000.101,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.dfm=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\UnitFormEstado.dfm</Transaction>
|
||||
<Transaction>2018/08/03 09:19:04.000.339,=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.pas</Transaction>
|
||||
<Transaction>2018/08/03 09:22:08.000.430,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\UnitFormPais.pas=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.pas</Transaction>
|
||||
<Transaction>2018/08/03 09:22:08.000.430,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\UnitFormPais.dfm=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Unit1.dfm</Transaction>
|
||||
@ -33,9 +33,11 @@
|
||||
<Transaction>2018/08/08 12:16:26.000.969,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/08 14:58:46.000.344,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/14 14:54:15.000.469,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/15 09:42:05.729,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/15 14:04:18.997,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/15 15:04:40.526,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/15 09:42:05.000.729,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/15 14:04:18.000.997,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/15 15:04:40.000.526,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/16 11:06:43.000.602,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
<Transaction>2018/08/17 12:26:51.000,C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj=C:\Users\programacaounico38\Documents\Embarcadero\Studio\Projects\Ex_CRUD\Project1.dproj</Transaction>
|
||||
</Transactions>
|
||||
<ProjectSortOrder AutoSort="0" SortType="0">
|
||||
<File Path="UnitFormSplash.pas"/>
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
[Stats]
|
||||
EditorSecs=54967
|
||||
DesignerSecs=6268
|
||||
InspectorSecs=2075
|
||||
CompileSecs=317442
|
||||
OtherSecs=2376
|
||||
EditorSecs=55071
|
||||
DesignerSecs=6493
|
||||
InspectorSecs=2094
|
||||
CompileSecs=325150
|
||||
OtherSecs=2023
|
||||
StartTime=03/08/2018 07:57:26
|
||||
RealKeys=0
|
||||
EffectiveKeys=0
|
||||
DebugSecs=23613
|
||||
DebugSecs=23790
|
||||
|
||||
135
UnitDados.pas
Normal file
135
UnitDados.pas
Normal file
@ -0,0 +1,135 @@
|
||||
unit UnitDados;
|
||||
|
||||
interface
|
||||
|
||||
uses System.Classes, System.Contnrs, UnitLista, System.SysUtils, Dialogs;
|
||||
|
||||
type
|
||||
TDados = class
|
||||
constructor Create();
|
||||
|
||||
private
|
||||
|
||||
public
|
||||
Dado: integer;
|
||||
end;
|
||||
|
||||
TDadoArmazenado = class
|
||||
private
|
||||
Dados: TStringList;
|
||||
public
|
||||
constructor Create();
|
||||
procedure saveToFile(Arquivo: string; Lista: TLista; Classe: TClass);
|
||||
function loadFromFile(Arquivo: string; Classe: TClass): TLista;
|
||||
property DadoArmazenado: TStringList read Dados write Dados;
|
||||
end;
|
||||
|
||||
implementation
|
||||
uses UnitFormCidade, UnitFormEstado, unitFormPais;
|
||||
constructor TDados.Create();
|
||||
begin
|
||||
Dado := -1;
|
||||
end;
|
||||
|
||||
constructor TDadoArmazenado.Create;
|
||||
begin
|
||||
DadoArmazenado := TStringList.Create;
|
||||
end;
|
||||
|
||||
procedure TDadoArmazenado.saveToFile(Arquivo: string; Lista: TLista; Classe: TClass);
|
||||
var
|
||||
wDiretorio: string;
|
||||
wObj: TObject;
|
||||
wCont: integer;
|
||||
begin
|
||||
try
|
||||
for wCont := 0 to Lista.Count-1 do
|
||||
begin
|
||||
wObj := Lista.getObjectByIndex(wCont);
|
||||
if Classe = TCidade then
|
||||
begin
|
||||
with wObj as TCidade do
|
||||
DadoArmazenado.Add(format('%d|%s|%s|%s',[wCod, wCidade, wPais, wUF]));
|
||||
end;
|
||||
if Classe = TEstado then
|
||||
begin
|
||||
with wObj as TEstado do
|
||||
DadoArmazenado.Add(format('%d|%s|%s|%d',[wCod, wEstado, wPais, wAliquota]));
|
||||
end;
|
||||
if Classe = TPais then
|
||||
begin
|
||||
with wObj as TPais do
|
||||
DadoArmazenado.Add(format('%d|%s|%s|%d',[wCod, wPais, wNacionalidade, wCodFed]));
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
DadoArmazenado.savetofile(Arquivo);
|
||||
ShowMessage('Exportação executada!');
|
||||
end;
|
||||
end;
|
||||
|
||||
function TDadoArmazenado.loadFromFile(Arquivo: string; Classe: TClass): TLista;
|
||||
var
|
||||
wStringList: TStringList;
|
||||
wStringAux: TStringList;
|
||||
wObj: TObject;
|
||||
wCont: Integer;
|
||||
FLista: TLista;
|
||||
wIndex: integer;
|
||||
begin
|
||||
wStringList := TStringList.Create;
|
||||
wStringList.LoadFromFile(Arquivo, TEncoding.UTF8);
|
||||
wStringAux := TStringList.Create;
|
||||
FLista := TLista.Create;
|
||||
try
|
||||
for wCont := 0 to wStringList.Count-1 do
|
||||
begin
|
||||
// condição de acordo com a classe recebida
|
||||
wStringAux.Clear;
|
||||
wStringAux.Delimiter := '|';
|
||||
wStringAux.DelimitedText := wStringList[wCont];
|
||||
wStringAux.StrictDelimiter := True;
|
||||
if Classe = TCidade then
|
||||
begin
|
||||
wObj := TCidade.Create;
|
||||
with wObj as TCidade do
|
||||
begin
|
||||
wCod := strtoint(wStringAux.Strings[0]);
|
||||
wCidade := wStringAux.Strings[1];
|
||||
wPais := wStringAux.Strings[2];
|
||||
wUF := wStringAux.Strings[3];
|
||||
end;
|
||||
FLista.Inserir(wObj, TCidade);
|
||||
end;
|
||||
if Classe = TEstado then
|
||||
begin
|
||||
wObj := TEstado.Create;
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
wCod := strtoint(wStringAux.Strings[0]);
|
||||
wEstado := wStringAux.Strings[1];
|
||||
wPais := wStringAux.Strings[2];
|
||||
wAliquota := strtoint(wStringAux.Strings[3]);
|
||||
end;
|
||||
FLista.Inserir(wObj, TEstado);
|
||||
end;
|
||||
if Classe = TPais then
|
||||
begin
|
||||
wObj := TPais.Create;
|
||||
with wObj as TPais do
|
||||
begin
|
||||
wCod := strtoint(wStringAux.Strings[0]);
|
||||
wPais := wStringAux.Strings[1];
|
||||
wNacionalidade := wStringAux.Strings[2];
|
||||
wCodFed := strtoint(wStringAux.Strings[3]);
|
||||
end;
|
||||
FLista.Inserir(wObj, TPais);
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
Result := FLista;
|
||||
ShowMessage('Importação executada!');
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
130
UnitFormCidade.dfm
Normal file
130
UnitFormCidade.dfm
Normal file
@ -0,0 +1,130 @@
|
||||
inherited FormCidade: TFormCidade
|
||||
Caption = 'Cadastro de cidade:'
|
||||
ClientHeight = 312
|
||||
OnCreate = FormCreate
|
||||
ExplicitHeight = 351
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 15
|
||||
inherited ToolBar1: TToolBar
|
||||
inherited btAnterior: TButton
|
||||
TabOrder = 2
|
||||
OnClick = btAnteriorClick
|
||||
end
|
||||
inherited btProximo: TButton
|
||||
OnClick = btProximoClick
|
||||
end
|
||||
inherited btBuscar: TButton
|
||||
TabOrder = 0
|
||||
OnClick = btBuscarClick
|
||||
end
|
||||
inherited btInserir: TButton
|
||||
Default = False
|
||||
OnClick = btInserirClick
|
||||
end
|
||||
inherited btExcluir: TButton
|
||||
OnClick = btExcluirClick
|
||||
end
|
||||
inherited btImportar: TButton
|
||||
OnClick = btImportarClick
|
||||
end
|
||||
inherited btExportar: TButton
|
||||
OnClick = btExportarClick
|
||||
end
|
||||
inherited btContar: TButton
|
||||
OnClick = btContarClick
|
||||
end
|
||||
end
|
||||
inherited Panel1: TPanel
|
||||
Height = 264
|
||||
ExplicitHeight = 264
|
||||
inherited cbLimparCampos: TCheckBox
|
||||
TabOrder = 1
|
||||
end
|
||||
inherited Panel2: TPanel
|
||||
Top = 6
|
||||
TabOrder = 0
|
||||
ExplicitLeft = 98
|
||||
object Label1: TLabel
|
||||
Left = 52
|
||||
Top = 66
|
||||
Width = 42
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'C'#243'digo:'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 54
|
||||
Top = 111
|
||||
Width = 40
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'Cidade:'
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 69
|
||||
Top = 161
|
||||
Width = 25
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'Pa'#237's:'
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 277
|
||||
Top = 161
|
||||
Width = 19
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'UF:'
|
||||
end
|
||||
object edCidade: TEdit
|
||||
Tag = 1
|
||||
Left = 109
|
||||
Top = 108
|
||||
Width = 150
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 0
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
object edCod: TEdit
|
||||
Left = 110
|
||||
Top = 63
|
||||
Width = 75
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 1
|
||||
OnExit = edCodExit
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
object edPais: TEdit
|
||||
Tag = 2
|
||||
Left = 109
|
||||
Top = 158
|
||||
Width = 150
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 2
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
object edUF: TEdit
|
||||
Tag = 3
|
||||
Left = 310
|
||||
Top = 158
|
||||
Width = 75
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 3
|
||||
OnKeyPress = edFinalKeyPress
|
||||
end
|
||||
end
|
||||
end
|
||||
inherited StatusBar1: TStatusBar
|
||||
Top = 293
|
||||
Panels = <
|
||||
item
|
||||
Text = 'Aguardando'
|
||||
Width = 50
|
||||
end>
|
||||
ExplicitTop = 293
|
||||
end
|
||||
end
|
||||
416
UnitFormCidade.pas
Normal file
416
UnitFormCidade.pas
Normal file
@ -0,0 +1,416 @@
|
||||
unit UnitFormCidade;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UnitFormPadrao, Vcl.StdCtrls,
|
||||
Vcl.ToolWin, Vcl.ComCtrls, UnitLista, contnrs, Vcl.ExtCtrls, Vcl.Grids, UnitDados,
|
||||
Vcl.ExtDlgs;
|
||||
|
||||
type
|
||||
TFormCidade = class(TFormPadrao)
|
||||
edCod: TEdit;
|
||||
edCidade: TEdit;
|
||||
edUF: TEdit;
|
||||
edPais: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
Label4: TLabel;
|
||||
procedure btInserirClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btExcluirClick(Sender: TObject);
|
||||
procedure btAnteriorClick(Sender: TObject);
|
||||
procedure btProximoClick(Sender: TObject);
|
||||
procedure btBuscarClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure btExportarClick(Sender: TObject);
|
||||
procedure btImportarClick(Sender: TObject);
|
||||
procedure btContarClick(Sender: TObject);
|
||||
procedure Button1Click(Sender: TObject);
|
||||
procedure edCodExit(Sender: TObject);
|
||||
procedure edFinalKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure limpaCampos();
|
||||
procedure cbLimparCamposClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
strict private wLista: TLista;
|
||||
wClear: boolean;
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
TCidade = class
|
||||
private
|
||||
wpCod: integer;
|
||||
wpCidade: string;
|
||||
wpPais: string;
|
||||
wpUF: string;
|
||||
public
|
||||
property wCod: integer read wpCod write wpCod;
|
||||
property wCidade: string read wpCidade write wpCidade;
|
||||
property wPais: string read wpPais write wpPais;
|
||||
property wUF: string read wpUF write wpUF;
|
||||
end;
|
||||
|
||||
var
|
||||
FormCidade: TFormCidade;
|
||||
wCidade: TCidade;
|
||||
Dado1: TDados;
|
||||
|
||||
implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses UnitFormGrid;
|
||||
|
||||
|
||||
procedure TFormCidade.btAnteriorClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wIndex: integer;
|
||||
I: Integer;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TCidade do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
wIndex := wLista.getIndexOfObj(wObj);
|
||||
end;
|
||||
end;
|
||||
if wIndex-1 >= 0 then
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wIndex-1);
|
||||
with wObj as TCidade do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edCidade.Text := wCidade;
|
||||
edPais.Text := wPais;
|
||||
edUF.Text := wUF;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.btProximoClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wIndex: integer;
|
||||
I: integer;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TCidade do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
wIndex := wLista.getIndexOfObj(wObj);
|
||||
end;
|
||||
if wIndex+1 < wLista.Count then
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wIndex+1);
|
||||
with wObj as TCidade do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edCidade.Text := wCidade;
|
||||
edPais.Text := wPais;
|
||||
edUF.Text := wUF;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.Button1Click(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ShowMessage('teste');
|
||||
end;
|
||||
|
||||
procedure TFormCidade.cbLimparCamposClick(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
if wClear then
|
||||
wClear := false
|
||||
else
|
||||
wClear := true;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.limpaCampos();
|
||||
begin
|
||||
if wClear then
|
||||
begin
|
||||
edCod.Clear;
|
||||
edCidade.Clear;
|
||||
edPais.Clear;
|
||||
edUF.Clear;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.edFinalKeyPress(Sender: TObject; var Key: Char);
|
||||
var
|
||||
wObj: TCidade;
|
||||
wObjGet: TObject;
|
||||
wcont: Integer;
|
||||
wIndex: integer;
|
||||
wMaior: integer;
|
||||
wNew: boolean;
|
||||
wZero: boolean;
|
||||
begin
|
||||
inherited;
|
||||
if (ord(key) = 13) or (ord(key) = 9) then
|
||||
begin
|
||||
wNew := true;
|
||||
if (trystrtoint(edCod.Text, windex)) then
|
||||
begin
|
||||
wObj := TCidade.Create;
|
||||
with wObj do
|
||||
begin
|
||||
wCod := strtoint(edCod.Text);
|
||||
wCidade := edCidade.Text;
|
||||
wPais := edPais.Text;
|
||||
wUF := edUF.Text;
|
||||
end;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObjGet := wLista.getObjectByIndex(wCont);
|
||||
with wObjGet as TCidade do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wLista.Update(wCont, wObj);
|
||||
wNew := false;
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
if wNew = true then
|
||||
begin
|
||||
wLista.Inserir(wObj, TCidade);
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
end;
|
||||
|
||||
end
|
||||
else
|
||||
if edCod.Text = '' then
|
||||
begin
|
||||
wZero := true;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObjGet := wLista.getObjectByIndex(wCont);
|
||||
with wobjGet as TCidade do
|
||||
begin
|
||||
if wCod > wMaior then
|
||||
wMaior := wCod;
|
||||
wZero := false;
|
||||
end;
|
||||
|
||||
end;
|
||||
wObj := TCidade.Create;
|
||||
with wObj do
|
||||
begin
|
||||
if wZero then
|
||||
wCod := 0
|
||||
else
|
||||
wCod := wMaior+1;
|
||||
wCidade := edCidade.Text;
|
||||
wPais := edPais.Text;
|
||||
wUF := edUF.Text;
|
||||
end;
|
||||
wLista.Inserir(wObj, TCidade);
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
end;
|
||||
// volta pro edit do inicio e altera status bar
|
||||
for wCont := 0 to ComponentCount-1 do
|
||||
if (Components[wCont].Tag = 0) and (Components[wCont] is TEdit) then
|
||||
with Components[wCont] as TEdit do
|
||||
begin
|
||||
setFocus;
|
||||
StatusBar1.Panels[0].Text := 'Aguardando';
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.edCodExit(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wCont: Integer;
|
||||
wIndex: integer;
|
||||
wNew: boolean;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
wNew := true;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wCont);
|
||||
with wObj as TCidade do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
StatusBar1.Panels[0].Text := 'Alterando registro';
|
||||
edCod.Text := inttostr(wCod);
|
||||
edCidade.Text := wCidade;
|
||||
edPais.Text := wPais;
|
||||
edUF.Text := wUF;
|
||||
wNew := false;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
if wNew then
|
||||
StatusBar1.Panels[0].Text := 'Novo registro';
|
||||
end
|
||||
else
|
||||
if edCod.Text = '' then
|
||||
StatusBar1.Panels[0].Text := 'Novo registro'
|
||||
else
|
||||
StatusBar1.Panels[0].Text := 'Aguardando';
|
||||
end;
|
||||
|
||||
procedure TFormCidade.btExportarClick(Sender: TObject);
|
||||
var
|
||||
DadoArmazenado: TDadoArmazenado;
|
||||
wDir: string;
|
||||
begin
|
||||
inherited;
|
||||
DadoArmazenado := TDadoArmazenado.Create;
|
||||
if SaveTextFileDialog1.Execute then
|
||||
wDir := SaveTextFileDialog1.FileName;
|
||||
DadoArmazenado.saveToFile(wDir, wLista, TCidade);
|
||||
end;
|
||||
|
||||
procedure TFormCidade.btBuscarClick(Sender: TObject);
|
||||
var
|
||||
FormGrid: TFormGrid;
|
||||
begin
|
||||
inherited;
|
||||
if wLista.Count > 0 then
|
||||
begin
|
||||
FormGrid := TFormGrid.Create(nil);
|
||||
FormGrid.geraGrid(wLista, TCidade);
|
||||
FormGrid.Show;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.btContarClick(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ShowMessage(inttostr(wLista.Count));
|
||||
end;
|
||||
|
||||
procedure TFormCidade.btExcluirClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
I: Integer;
|
||||
begin
|
||||
inherited;
|
||||
try
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TCidade do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wLista.Excluir(I);
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
edCod.Clear;
|
||||
edCidade.Clear;
|
||||
edPais.Clear;
|
||||
edUF.Clear;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.btImportarClick(Sender: TObject);
|
||||
var
|
||||
DadoArmazenado: TDadoArmazenado;
|
||||
wDir: string;
|
||||
begin
|
||||
inherited;
|
||||
DadoArmazenado := TDadoArmazenado.Create;
|
||||
if OpenTextFileDialog1.Execute then
|
||||
wDir := OpenTextFileDialog1.FileName;
|
||||
wLista := DadoArmazenado.loadFromFile(wDir, TCidade);
|
||||
end;
|
||||
|
||||
procedure TFormCidade.btInserirClick(Sender: TObject);
|
||||
var
|
||||
Cidade: TCidade;
|
||||
wObj: TObject;
|
||||
wIndex: integer;
|
||||
I: integer;
|
||||
wAux: integer;
|
||||
begin
|
||||
inherited;
|
||||
Cidade := TCidade.Create;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
with Cidade do
|
||||
begin
|
||||
wCod := strtoint(edCod.Text);wCidade := edCidade.Text;wPais := edPais.Text;wUF := edUF.Text;
|
||||
end;
|
||||
if wLista.Count >= 1 then
|
||||
begin
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TCidade do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wAux := 1;
|
||||
wLista.Update(I, Cidade);
|
||||
break;
|
||||
end
|
||||
else
|
||||
wAux := 0;
|
||||
end;
|
||||
end;
|
||||
if wAux =0 then
|
||||
wLista.Inserir(Cidade, TCidade)
|
||||
end
|
||||
else
|
||||
wLista.Inserir(Cidade, TCidade);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.FormActivate(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wCont: Integer;
|
||||
begin
|
||||
inherited;
|
||||
if Dado1.Dado > -1 then
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(Dado1.Dado);
|
||||
with wObj as TCidade do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edCidade.Text := wCidade;
|
||||
edPais.Text := wPais;
|
||||
edUF.Text := wUF;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormCidade.FormCreate(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
wLista := TLista.Create;
|
||||
Dado1 := TDados.Create;
|
||||
wClear := false;
|
||||
end;
|
||||
|
||||
initialization
|
||||
registerclass (TFormCidade);
|
||||
end.
|
||||
138
UnitFormEstado.dfm
Normal file
138
UnitFormEstado.dfm
Normal file
@ -0,0 +1,138 @@
|
||||
inherited FormEstado: TFormEstado
|
||||
Caption = 'Cadastro de estado:'
|
||||
ClientHeight = 313
|
||||
ClientWidth = 601
|
||||
OnCreate = FormCreate
|
||||
ExplicitWidth = 617
|
||||
ExplicitHeight = 352
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 15
|
||||
inherited ToolBar1: TToolBar
|
||||
Width = 601
|
||||
Anchors = []
|
||||
ExplicitWidth = 601
|
||||
inherited btAnterior: TButton
|
||||
OnClick = btAnteriorClick
|
||||
end
|
||||
inherited btProximo: TButton
|
||||
OnClick = btProximoClick
|
||||
end
|
||||
inherited btBuscar: TButton
|
||||
OnClick = btBuscarClick
|
||||
end
|
||||
inherited btInserir: TButton
|
||||
Default = False
|
||||
OnClick = btInserirClick
|
||||
end
|
||||
inherited btExcluir: TButton
|
||||
OnClick = btExcluirClick
|
||||
end
|
||||
inherited btImportar: TButton
|
||||
OnClick = btImportarClick
|
||||
end
|
||||
inherited btExportar: TButton
|
||||
OnClick = btExportarClick
|
||||
end
|
||||
inherited btContar: TButton
|
||||
OnClick = btContarClick
|
||||
end
|
||||
end
|
||||
inherited Panel1: TPanel
|
||||
Width = 601
|
||||
Height = 265
|
||||
ExplicitWidth = 601
|
||||
ExplicitHeight = 265
|
||||
inherited cbLimparCampos: TCheckBox
|
||||
TabOrder = 1
|
||||
end
|
||||
inherited Panel2: TPanel
|
||||
Left = 102
|
||||
Top = 6
|
||||
TabOrder = 0
|
||||
ExplicitLeft = 102
|
||||
object Label1: TLabel
|
||||
Left = 50
|
||||
Top = 65
|
||||
Width = 42
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'C'#243'digo:'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 52
|
||||
Top = 108
|
||||
Width = 40
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'Estado:'
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 67
|
||||
Top = 153
|
||||
Width = 25
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'Pa'#237's:'
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 266
|
||||
Top = 153
|
||||
Width = 29
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'Al'#237'q.:'
|
||||
end
|
||||
object edAliquota: TEdit
|
||||
Tag = 3
|
||||
Left = 306
|
||||
Top = 150
|
||||
Width = 75
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 0
|
||||
OnKeyPress = edFinalKeyPress
|
||||
end
|
||||
object edCod: TEdit
|
||||
Left = 110
|
||||
Top = 62
|
||||
Width = 75
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 1
|
||||
OnExit = edCodExit
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
object edEstado: TEdit
|
||||
Tag = 1
|
||||
Left = 110
|
||||
Top = 105
|
||||
Width = 150
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 2
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
object edPais: TEdit
|
||||
Tag = 2
|
||||
Left = 110
|
||||
Top = 150
|
||||
Width = 150
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 3
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
end
|
||||
end
|
||||
inherited StatusBar1: TStatusBar
|
||||
Top = 294
|
||||
Width = 601
|
||||
Panels = <
|
||||
item
|
||||
Text = 'Aguardando'
|
||||
Width = 50
|
||||
end>
|
||||
ExplicitTop = 294
|
||||
ExplicitWidth = 601
|
||||
end
|
||||
end
|
||||
407
UnitFormEstado.pas
Normal file
407
UnitFormEstado.pas
Normal file
@ -0,0 +1,407 @@
|
||||
unit UnitFormEstado;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UnitFormPadrao, Vcl.StdCtrls, UnitLista, UnitDados,
|
||||
Vcl.ToolWin, Vcl.ComCtrls, System.Contnrs, Vcl.ExtDlgs, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TFormEstado = class(TFormPadrao)
|
||||
edCod: TEdit;
|
||||
edEstado: TEdit;
|
||||
edPais: TEdit;
|
||||
edAliquota: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
Label4: TLabel;
|
||||
procedure btInserirClick(Sender: TObject);
|
||||
procedure btExcluirClick(Sender: TObject);
|
||||
procedure btContarClick(Sender: TObject);
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btAnteriorClick(Sender: TObject);
|
||||
procedure btProximoClick(Sender: TObject);
|
||||
procedure btBuscarClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure btExportarClick(Sender: TObject);
|
||||
procedure btImportarClick(Sender: TObject);
|
||||
procedure edFinalKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure limpaCampos();
|
||||
procedure edCodExit(Sender: TObject);
|
||||
procedure cbLimparCamposClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
strict private wLista: TLista;
|
||||
wClear: boolean;
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
TEstado = class
|
||||
private
|
||||
wpCod: integer;
|
||||
wpEstado: string;
|
||||
wpPais: string;
|
||||
wpAliquota: integer;
|
||||
public
|
||||
property wCod: integer read wpCod write wpCod;
|
||||
property wEstado: string read wpEstado write wpEstado;
|
||||
property wPais: string read wpPais write wpPais;
|
||||
property wAliquota: integer read wpAliquota write wpAliquota;
|
||||
end;
|
||||
|
||||
var
|
||||
FormEstado: TFormEstado;
|
||||
wEstado: TEstado;
|
||||
Dado2: TDados;
|
||||
|
||||
implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses UnitFormGrid;
|
||||
|
||||
procedure TFormEstado.edCodExit(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wCont: Integer;
|
||||
wIndex: integer;
|
||||
wNew: boolean;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
wNew := true;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wCont);
|
||||
with wObj as TEstado do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
StatusBar1.Panels[0].Text := 'Alterando registro';
|
||||
edCod.Text := inttostr(wCod);
|
||||
edEstado.Text := wEstado;
|
||||
edPais.Text := wPais;
|
||||
edAliquota.Text := inttostr(wAliquota);
|
||||
wNew := false;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
if wNew then
|
||||
StatusBar1.Panels[0].Text := 'Novo registro';
|
||||
end
|
||||
else
|
||||
if edCod.Text = '' then
|
||||
StatusBar1.Panels[0].Text := 'Novo registro'
|
||||
else
|
||||
StatusBar1.Panels[0].Text := 'Aguardando';
|
||||
end;
|
||||
|
||||
procedure TFormEstado.limpaCampos;
|
||||
begin
|
||||
if wClear then
|
||||
begin
|
||||
edCod.Clear;
|
||||
edEstado.Clear;
|
||||
edPais.Clear;
|
||||
edAliquota.Clear;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormEstado.edFinalKeyPress(Sender: TObject; var Key: Char);
|
||||
var
|
||||
wObj: TEstado;
|
||||
wObjGet: TObject;
|
||||
wcont: Integer;
|
||||
wIndex: integer;
|
||||
wMaior: integer;
|
||||
wNew: boolean;
|
||||
wZero: boolean;
|
||||
begin
|
||||
inherited;
|
||||
if (ord(key) = 13) or (ord(key) = 9) then
|
||||
begin
|
||||
wNew := true;
|
||||
if (trystrtoint(edCod.Text, windex)) then
|
||||
begin
|
||||
wObj := TEstado.Create;
|
||||
with wObj do
|
||||
begin
|
||||
wCod := strtoint(edCod.Text);
|
||||
wEstado := edEstado.Text;
|
||||
wPais := edPais.Text;
|
||||
wAliquota := strtoint(edAliquota.Text);
|
||||
end;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObjGet := wLista.getObjectByIndex(wCont);
|
||||
with wObjGet as TEstado do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wLista.Update(wCont, wObj);
|
||||
wNew := false;
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
if wNew = true then
|
||||
begin
|
||||
wLista.Inserir(wObj, TEstado);
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
end;
|
||||
|
||||
end
|
||||
else
|
||||
if edCod.Text = '' then
|
||||
begin
|
||||
wZero := true;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObjGet := wLista.getObjectByIndex(wCont);
|
||||
with wobjGet as TEstado do
|
||||
begin
|
||||
if wCod > wMaior then
|
||||
wMaior := wCod;
|
||||
wZero := false;
|
||||
end;
|
||||
|
||||
end;
|
||||
wObj := TEstado.Create;
|
||||
with wObj do
|
||||
begin
|
||||
if wZero then
|
||||
wCod := 0
|
||||
else
|
||||
wCod := wMaior+1;
|
||||
wEstado := edEstado.Text;
|
||||
wPais := edPais.Text;
|
||||
wAliquota := strtoint(edAliquota.Text);
|
||||
end;
|
||||
wLista.Inserir(wObj, TEstado);
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
end;
|
||||
// volta pro edit do inicio e altera status bar
|
||||
for wCont := 0 to ComponentCount-1 do
|
||||
if (Components[wCont].Tag = 0) and (Components[wCont] is TEdit) then
|
||||
with Components[wCont] as TEdit do
|
||||
begin
|
||||
setFocus;
|
||||
StatusBar1.Panels[0].Text := 'Aguardando';
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
procedure TFormEstado.btAnteriorClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wObj2: TObject;
|
||||
wIndex: integer;
|
||||
I: Integer;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
for I := 1 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
wIndex := wLista.getIndexOfObj(wObj);
|
||||
end;
|
||||
end;
|
||||
if wIndex-1 >= 0 then
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wIndex-1);
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edEstado.Text := wEstado;
|
||||
edPais.Text := wPais;
|
||||
edAliquota.Text := inttostr(wAliquota);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormEstado.btBuscarClick(Sender: TObject);
|
||||
var
|
||||
FormGrid: TFormGrid;
|
||||
begin
|
||||
inherited;
|
||||
FormGrid := TFormGrid.Create(nil);
|
||||
FormGrid.geraGrid(wLista, TEstado);
|
||||
FormGrid.Show;
|
||||
end;
|
||||
|
||||
procedure TFormEstado.btContarClick(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ShowMessage(inttostr(wLista.Count));
|
||||
end;
|
||||
|
||||
procedure TFormEstado.btExcluirClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
I: integer;
|
||||
begin
|
||||
inherited;
|
||||
try
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TEstado do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wLista.Excluir(I);
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
edCod.Clear;
|
||||
edEstado.Clear;
|
||||
edPais.Clear;
|
||||
edAliquota.Clear;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormEstado.btExportarClick(Sender: TObject);
|
||||
var
|
||||
DadoArmazenado: TDadoArmazenado;
|
||||
wDir: string;
|
||||
begin
|
||||
inherited;
|
||||
DadoArmazenado := TDadoArmazenado.Create;
|
||||
if SaveTextFileDialog1.Execute then
|
||||
wDir := SaveTextFileDialog1.FileName;
|
||||
DadoArmazenado.saveToFile(wDir, wLista, TEstado);
|
||||
end;
|
||||
|
||||
procedure TFormEstado.btImportarClick(Sender: TObject);
|
||||
var
|
||||
DadoArmazenado: TDadoArmazenado;
|
||||
wDir: string;
|
||||
begin
|
||||
inherited;
|
||||
DadoArmazenado := TDadoArmazenado.Create;
|
||||
if OpenTextFileDialog1.Execute then
|
||||
wDir := OpenTextFileDialog1.FileName;
|
||||
wLista := DadoArmazenado.loadFromFile(wDir, TEstado);
|
||||
end;
|
||||
|
||||
procedure TFormEstado.btInserirClick(Sender: TObject);
|
||||
var
|
||||
Estado: TEstado;
|
||||
wObj: TObject;
|
||||
wIndex: integer;
|
||||
I: integer;
|
||||
wAux: integer;
|
||||
begin
|
||||
inherited;
|
||||
Estado := TEstado.Create;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
with Estado do
|
||||
begin
|
||||
wCod := strtoint(edCod.Text);wEstado := edEstado.Text;wPais := edPais.Text;wAliquota := strtoint(edAliquota.Text);
|
||||
end;
|
||||
if wLista.Count >= 1 then
|
||||
begin
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wAux := 1;
|
||||
wLista.Update(I, Estado);
|
||||
break;
|
||||
end
|
||||
else
|
||||
wAux := 0;
|
||||
end;
|
||||
end;
|
||||
if wAux =0 then
|
||||
wLista.Inserir(Estado, TEstado)
|
||||
end
|
||||
else
|
||||
wLista.Inserir(Estado, TEstado);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormEstado.btProximoClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wIndex: integer;
|
||||
I: integer;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
wIndex := wLista.getIndexOfObj(wObj);
|
||||
end;
|
||||
end;
|
||||
if wIndex+1 < wLista.Count then
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wIndex+1);
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edEstado.Text := wEstado;
|
||||
edPais.Text := wPais;
|
||||
edAliquota.Text := inttostr(wAliquota);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormEstado.cbLimparCamposClick(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
if wClear then
|
||||
wClear := false
|
||||
else
|
||||
wClear := true;
|
||||
|
||||
end;
|
||||
|
||||
procedure TFormEstado.FormActivate(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
begin
|
||||
inherited;
|
||||
if Dado2.Dado > -1 then
|
||||
begin
|
||||
wObj := TEstado.Create;
|
||||
wObj := wLista.getObjectByIndex(Dado2.Dado);
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edEstado.Text := wEstado;
|
||||
edPais.Text := wPais;
|
||||
edAliquota.Text := inttostr(wAliquota);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormEstado.FormCreate(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
wLista := TLista.Create;
|
||||
Dado2 := TDados.Create;
|
||||
wClear := false;
|
||||
end;
|
||||
|
||||
initialization
|
||||
registerclass(TFormEstado);
|
||||
end.
|
||||
61
UnitFormGrid.dfm
Normal file
61
UnitFormGrid.dfm
Normal file
@ -0,0 +1,61 @@
|
||||
object FormGrid: TFormGrid
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 365
|
||||
Height = 340
|
||||
AutoScroll = True
|
||||
Caption = 'FormGrid'
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
FormStyle = fsMDIChild
|
||||
OldCreateOrder = False
|
||||
Visible = True
|
||||
OnClose = FormClose
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object StringGrid1: TStringGrid
|
||||
Left = 8
|
||||
Top = 35
|
||||
Width = 265
|
||||
Height = 184
|
||||
ColCount = 4
|
||||
FixedCols = 0
|
||||
FixedRows = 0
|
||||
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goRowSelect]
|
||||
ParentShowHint = False
|
||||
ShowHint = True
|
||||
TabOrder = 0
|
||||
end
|
||||
object ToolBar1: TToolBar
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 349
|
||||
Height = 29
|
||||
ButtonHeight = 25
|
||||
Caption = 'ToolBar1'
|
||||
TabOrder = 1
|
||||
object btExcluir: TButton
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 70
|
||||
Height = 25
|
||||
Caption = 'Excluir'
|
||||
TabOrder = 0
|
||||
OnClick = btExcluirClick
|
||||
end
|
||||
object btEscolher: TButton
|
||||
Left = 70
|
||||
Top = 0
|
||||
Width = 70
|
||||
Height = 25
|
||||
Caption = 'Escolher'
|
||||
Default = True
|
||||
TabOrder = 1
|
||||
OnClick = btEscolherClick
|
||||
end
|
||||
end
|
||||
end
|
||||
112
UnitFormGrid.pas
Normal file
112
UnitFormGrid.pas
Normal file
@ -0,0 +1,112 @@
|
||||
unit UnitFormGrid;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, UnitLista, UnitFormEstado, UnitFormPais,
|
||||
Vcl.ToolWin, Vcl.ComCtrls, Vcl.StdCtrls, UnitDados;
|
||||
|
||||
type
|
||||
TFormGrid = class(TForm)
|
||||
StringGrid1: TStringGrid;
|
||||
ToolBar1: TToolBar;
|
||||
btExcluir: TButton;
|
||||
btEscolher: TButton;
|
||||
procedure geraGrid(wLista: TLista; wClass: TClass);
|
||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure btExcluirClick(Sender: TObject);
|
||||
procedure btEscolherClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
FormGrid: TFormGrid;
|
||||
FClass: TClass;
|
||||
FLista: TLista;
|
||||
|
||||
implementation
|
||||
{$R *.dfm}
|
||||
uses UnitFormCidade;
|
||||
procedure TFormGrid.btEscolherClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
FormCidade: TFormCidade;
|
||||
begin
|
||||
try
|
||||
if FClass = TCidade then
|
||||
Dado1.Dado := StringGrid1.Row;
|
||||
if FClass = TEstado then
|
||||
Dado2.Dado := StringGrid1.Row;
|
||||
if FClass = TPais then
|
||||
Dado3.Dado := StringGrid1.Row;
|
||||
finally
|
||||
Self.Free;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormGrid.btExcluirClick(Sender: TObject);
|
||||
var
|
||||
Index: integer;
|
||||
wObj: TObject;
|
||||
begin
|
||||
Index := StringGrid1.Row;
|
||||
wObj := FClass.Create;
|
||||
try
|
||||
wObj := FLista.getObjectByIndex(Index);
|
||||
FLista.Excluir(Index);
|
||||
finally
|
||||
Self.Free;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure TFormGrid.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
begin
|
||||
Action := caFree;
|
||||
end;
|
||||
|
||||
procedure TFormGrid.geraGrid(wLista: TLista; wClass: TClass);
|
||||
var
|
||||
wCont: integer;
|
||||
wObj: TObject;
|
||||
begin
|
||||
FClass := wClass;
|
||||
FLista := wLista;
|
||||
wObj := FClass.Create;
|
||||
StringGrid1.RowCount := FLista.Count;
|
||||
for wCont := 0 to FLista.Count-1 do
|
||||
begin
|
||||
wObj := FLista.getObjectByIndex(wCont);
|
||||
// fazer uma condição para cada tipo de Classe existente
|
||||
if wObj.ClassType = TCidade then
|
||||
with wObj as TCidade do
|
||||
begin
|
||||
StringGrid1.Cells[0, wCont] := inttostr(wCod);
|
||||
StringGrid1.Cells[1, wCont] := wCidade;
|
||||
StringGrid1.Cells[2, wCont] := wPais;
|
||||
StringGrid1.Cells[3, wCont] := wUF;
|
||||
end;
|
||||
if wObj.ClassType = TEstado then
|
||||
with wObj as TEstado do
|
||||
begin
|
||||
StringGrid1.Cells[0, wCont] := inttostr(wCod);
|
||||
StringGrid1.Cells[1, wCont] := wEstado;
|
||||
StringGrid1.Cells[2, wCont] := wPais;
|
||||
StringGrid1.Cells[3, wCont] := inttostr(wAliquota);
|
||||
end;
|
||||
if wObj.ClassType = TPais then
|
||||
with wObj as TPais do
|
||||
begin
|
||||
StringGrid1.Cells[0, wCont] := inttostr(wCod);
|
||||
StringGrid1.Cells[1, wCont] := wPais;
|
||||
StringGrid1.Cells[2, wCont] := wNacionalidade;
|
||||
StringGrid1.Cells[3, wCont] := inttostr(wCodFed);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
148
UnitFormPadrao.dfm
Normal file
148
UnitFormPadrao.dfm
Normal file
@ -0,0 +1,148 @@
|
||||
object FormPadrao: TFormPadrao
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'FormPadrao'
|
||||
ClientHeight = 332
|
||||
ClientWidth = 598
|
||||
Color = clBtnFace
|
||||
Font.Charset = ANSI_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -13
|
||||
Font.Name = 'Times New Roman'
|
||||
Font.Style = []
|
||||
FormStyle = fsMDIChild
|
||||
OldCreateOrder = False
|
||||
Visible = True
|
||||
OnActivate = FormActivate
|
||||
OnClose = FormClose
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 15
|
||||
object ToolBar1: TToolBar
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 598
|
||||
Height = 29
|
||||
Caption = 'ToolBar1'
|
||||
TabOrder = 0
|
||||
ExplicitWidth = 600
|
||||
object btAnterior: TButton
|
||||
Left = 0
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = '<'
|
||||
TabOrder = 0
|
||||
end
|
||||
object btProximo: TButton
|
||||
Left = 75
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = '>'
|
||||
TabOrder = 1
|
||||
end
|
||||
object btBuscar: TButton
|
||||
Left = 150
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = 'Buscar'
|
||||
TabOrder = 2
|
||||
end
|
||||
object btInserir: TButton
|
||||
Left = 225
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = 'Inserir'
|
||||
Default = True
|
||||
TabOrder = 3
|
||||
end
|
||||
object btExcluir: TButton
|
||||
Left = 300
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = 'Excluir'
|
||||
TabOrder = 4
|
||||
end
|
||||
object btImportar: TButton
|
||||
Left = 375
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = 'Importar'
|
||||
TabOrder = 5
|
||||
end
|
||||
object btExportar: TButton
|
||||
Left = 450
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = 'Exportar'
|
||||
TabOrder = 6
|
||||
end
|
||||
object btContar: TButton
|
||||
Left = 525
|
||||
Top = 0
|
||||
Width = 75
|
||||
Height = 22
|
||||
Caption = 'Contar'
|
||||
TabOrder = 7
|
||||
end
|
||||
end
|
||||
object Panel1: TPanel
|
||||
Left = 0
|
||||
Top = 29
|
||||
Width = 598
|
||||
Height = 284
|
||||
Align = alClient
|
||||
TabOrder = 1
|
||||
ExplicitWidth = 600
|
||||
ExplicitHeight = 263
|
||||
DesignSize = (
|
||||
598
|
||||
284)
|
||||
object cbLimparCampos: TCheckBox
|
||||
Left = 394
|
||||
Top = 227
|
||||
Width = 56
|
||||
Height = 17
|
||||
Caption = 'Limpar'
|
||||
TabOrder = 0
|
||||
end
|
||||
object Panel2: TPanel
|
||||
Left = 98
|
||||
Top = 16
|
||||
Width = 400
|
||||
Height = 250
|
||||
Anchors = []
|
||||
TabOrder = 1
|
||||
ExplicitLeft = 99
|
||||
ExplicitTop = 6
|
||||
end
|
||||
end
|
||||
object StatusBar1: TStatusBar
|
||||
Left = 0
|
||||
Top = 313
|
||||
Width = 598
|
||||
Height = 19
|
||||
Panels = <
|
||||
item
|
||||
BiDiMode = bdLeftToRight
|
||||
ParentBiDiMode = False
|
||||
Text = 'Aguardando'
|
||||
Width = 50
|
||||
end>
|
||||
ExplicitTop = 292
|
||||
ExplicitWidth = 600
|
||||
end
|
||||
object SaveTextFileDialog1: TSaveTextFileDialog
|
||||
Left = 552
|
||||
Top = 40
|
||||
end
|
||||
object OpenTextFileDialog1: TOpenTextFileDialog
|
||||
Left = 552
|
||||
Top = 77
|
||||
end
|
||||
end
|
||||
87
UnitFormPadrao.pas
Normal file
87
UnitFormPadrao.pas
Normal file
@ -0,0 +1,87 @@
|
||||
unit UnitFormPadrao;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ToolWin, Vcl.ComCtrls, UnitLista,
|
||||
Vcl.ExtDlgs, Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TFormPadrao = class(TForm)
|
||||
ToolBar1: TToolBar;
|
||||
btAnterior: TButton;
|
||||
btProximo: TButton;
|
||||
btBuscar: TButton;
|
||||
btInserir: TButton;
|
||||
btExcluir: TButton;
|
||||
btImportar: TButton;
|
||||
btExportar: TButton;
|
||||
btContar: TButton;
|
||||
SaveTextFileDialog1: TSaveTextFileDialog;
|
||||
Panel1: TPanel;
|
||||
OpenTextFileDialog1: TOpenTextFileDialog;
|
||||
StatusBar1: TStatusBar;
|
||||
cbLimparCampos: TCheckBox;
|
||||
Panel2: TPanel;
|
||||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
procedure onKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
FormPadrao: TFormPadrao;
|
||||
|
||||
implementation
|
||||
{$R *.dfm}
|
||||
|
||||
uses UnitFormCidade;
|
||||
|
||||
procedure TFormPadrao.FormActivate(Sender: TObject);
|
||||
var
|
||||
wCont: integer;
|
||||
begin
|
||||
for wCont := 0 to ComponentCount-1 do
|
||||
if (Components[wCont] is TEdit) and (Components[wCont].Tag = 0) then
|
||||
with Components[wCont] as TEdit do
|
||||
setFocus;
|
||||
end;
|
||||
|
||||
procedure TFormPadrao.FormClose(Sender: TObject; var Action: TCloseAction);
|
||||
begin
|
||||
Action := caFree;
|
||||
end;
|
||||
|
||||
procedure TFormPadrao.onKeyPress(Sender: TObject; var Key: Char);
|
||||
var
|
||||
wCont: integer;
|
||||
wCont2: Integer;
|
||||
maior: boolean;
|
||||
begin
|
||||
maior := false;
|
||||
if ord(key) = VK_RETURN then
|
||||
begin
|
||||
for wCont := 0 to ComponentCount-1 do
|
||||
if (Components[wCont] = Sender) then
|
||||
for wCont2 := 0 to ComponentCount-1 do
|
||||
if (Components[wCont2] is TEdit) and (Components[wCont2].Tag = Components[wCont].Tag+1) then
|
||||
with Components[wCont2] as TEdit do
|
||||
begin
|
||||
setFocus;
|
||||
maior := true;
|
||||
break;
|
||||
break;
|
||||
end;
|
||||
if maior = false then
|
||||
for wCont := 0 to ComponentCount-1 do
|
||||
if (Components[wCont].Tag = 0) and (Components[wCont] is TEdit) then
|
||||
with Components[wCont] as TEdit do
|
||||
setFocus;
|
||||
end;
|
||||
end;
|
||||
|
||||
end.
|
||||
138
UnitFormPais.dfm
Normal file
138
UnitFormPais.dfm
Normal file
@ -0,0 +1,138 @@
|
||||
inherited FormPais: TFormPais
|
||||
Top = 17
|
||||
Caption = 'Cadastro de pa'#237's:'
|
||||
ClientHeight = 314
|
||||
ClientWidth = 602
|
||||
Position = poDesigned
|
||||
OnCreate = FormCreate
|
||||
ExplicitWidth = 618
|
||||
ExplicitHeight = 353
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 15
|
||||
inherited ToolBar1: TToolBar
|
||||
Width = 602
|
||||
ExplicitWidth = 602
|
||||
inherited btAnterior: TButton
|
||||
OnClick = btAnteriorClick
|
||||
end
|
||||
inherited btProximo: TButton
|
||||
OnClick = btProximoClick
|
||||
end
|
||||
inherited btBuscar: TButton
|
||||
OnClick = btBuscarClick
|
||||
end
|
||||
inherited btInserir: TButton
|
||||
Default = False
|
||||
OnClick = btInserirClick
|
||||
end
|
||||
inherited btExcluir: TButton
|
||||
OnClick = btExcluirClick
|
||||
end
|
||||
inherited btImportar: TButton
|
||||
OnClick = btImportarClick
|
||||
end
|
||||
inherited btExportar: TButton
|
||||
OnClick = btExportarClick
|
||||
end
|
||||
end
|
||||
inherited Panel1: TPanel
|
||||
Width = 602
|
||||
Height = 266
|
||||
ExplicitWidth = 602
|
||||
ExplicitHeight = 266
|
||||
DesignSize = (
|
||||
602
|
||||
266)
|
||||
inherited cbLimparCampos: TCheckBox
|
||||
TabOrder = 1
|
||||
end
|
||||
inherited Panel2: TPanel
|
||||
Top = 6
|
||||
TabOrder = 0
|
||||
ExplicitLeft = 98
|
||||
object Label1: TLabel
|
||||
Left = 49
|
||||
Top = 74
|
||||
Width = 42
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'C'#243'digo:'
|
||||
end
|
||||
object Label2: TLabel
|
||||
Left = 66
|
||||
Top = 117
|
||||
Width = 25
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'Pa'#237's:'
|
||||
end
|
||||
object Label3: TLabel
|
||||
Left = 12
|
||||
Top = 165
|
||||
Width = 79
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'Nacionalidade:'
|
||||
end
|
||||
object Label4: TLabel
|
||||
Left = 268
|
||||
Top = 163
|
||||
Width = 51
|
||||
Height = 15
|
||||
Anchors = []
|
||||
Caption = 'C'#243'd.Fed.:'
|
||||
end
|
||||
object edCod: TEdit
|
||||
Left = 110
|
||||
Top = 71
|
||||
Width = 75
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 0
|
||||
OnExit = edCodExit
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
object edCodFed: TEdit
|
||||
Tag = 3
|
||||
Left = 325
|
||||
Top = 160
|
||||
Width = 75
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 1
|
||||
OnKeyPress = edFinalKeyPress
|
||||
end
|
||||
object edNacionalidade: TEdit
|
||||
Tag = 2
|
||||
Left = 110
|
||||
Top = 162
|
||||
Width = 150
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 2
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
object edPais: TEdit
|
||||
Tag = 1
|
||||
Left = 110
|
||||
Top = 114
|
||||
Width = 150
|
||||
Height = 23
|
||||
Anchors = []
|
||||
TabOrder = 3
|
||||
OnKeyPress = onKeyPress
|
||||
end
|
||||
end
|
||||
end
|
||||
inherited StatusBar1: TStatusBar
|
||||
Top = 295
|
||||
Width = 602
|
||||
Panels = <
|
||||
item
|
||||
Text = 'Aguardando'
|
||||
Width = 50
|
||||
end>
|
||||
ExplicitTop = 295
|
||||
ExplicitWidth = 602
|
||||
end
|
||||
end
|
||||
408
UnitFormPais.pas
Normal file
408
UnitFormPais.pas
Normal file
@ -0,0 +1,408 @@
|
||||
unit UnitFormPais;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, UnitFormPadrao, Vcl.StdCtrls, UnitDados,
|
||||
Vcl.ToolWin, Vcl.ComCtrls, UnitLista, System.Contnrs, Vcl.ExtDlgs,
|
||||
Vcl.ExtCtrls;
|
||||
|
||||
type
|
||||
TFormPais = class(TFormPadrao)
|
||||
edCod: TEdit;
|
||||
edPais: TEdit;
|
||||
edNacionalidade: TEdit;
|
||||
edCodFed: TEdit;
|
||||
Label1: TLabel;
|
||||
Label2: TLabel;
|
||||
Label3: TLabel;
|
||||
Label4: TLabel;
|
||||
procedure FormCreate(Sender: TObject);
|
||||
procedure btInserirClick(Sender: TObject);
|
||||
procedure btContarClick(Sender: TObject);
|
||||
procedure btExcluirClick(Sender: TObject);
|
||||
procedure btAnteriorClick(Sender: TObject);
|
||||
procedure btProximoClick(Sender: TObject);
|
||||
procedure btBuscarClick(Sender: TObject);
|
||||
procedure FormActivate(Sender: TObject);
|
||||
procedure btExportarClick(Sender: TObject);
|
||||
procedure btImportarClick(Sender: TObject);
|
||||
procedure edCodExit(Sender: TObject);
|
||||
procedure edFinalKeyPress(Sender: TObject; var Key: Char);
|
||||
procedure limpaCampos();
|
||||
procedure cbLimparCamposClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
strict private wLista: TLista;
|
||||
wClear: boolean;
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
TPais = class
|
||||
private
|
||||
wpCod: integer;
|
||||
wpPais: string;
|
||||
wpNacionalidade: string;
|
||||
wpCodFed: integer;
|
||||
public
|
||||
property wCod: integer read wpCod write wpCod;
|
||||
property wPais: string read wpPais write wpPais;
|
||||
property wNacionalidade: string read wpNacionalidade write wpNacionalidade;
|
||||
property wCodFed: integer read wpCodFed write wpCodFed;
|
||||
end;
|
||||
|
||||
var
|
||||
FormPais: TFormPais;
|
||||
wPais: TPais;
|
||||
Dado3: TDados;
|
||||
|
||||
implementation
|
||||
{$R *.dfm}
|
||||
uses UnitFormGrid;
|
||||
|
||||
procedure TFormPais.limpaCampos();
|
||||
begin
|
||||
if wClear then
|
||||
begin
|
||||
edCod.Clear;
|
||||
edPais.Clear;
|
||||
edNacionalidade.Clear;
|
||||
edCodFed.Clear;
|
||||
end;
|
||||
|
||||
end;
|
||||
|
||||
procedure TFormPais.edFinalKeyPress(Sender: TObject; var Key: Char);
|
||||
var
|
||||
wObj: TPais;
|
||||
wObjGet: TObject;
|
||||
wcont: Integer;
|
||||
wIndex: integer;
|
||||
wMaior: integer;
|
||||
wNew: boolean;
|
||||
wZero: boolean;
|
||||
begin
|
||||
inherited;
|
||||
if (ord(key) = 13) or (ord(key) = 9) then
|
||||
begin
|
||||
wNew := true;
|
||||
if (trystrtoint(edCod.Text, windex)) then
|
||||
begin
|
||||
wObj := TPais.Create;
|
||||
with wObj do
|
||||
begin
|
||||
wCod := strtoint(edCod.Text);
|
||||
wPais := edPais.Text;
|
||||
wNacionalidade := edNacionalidade.Text;
|
||||
wCodFed := strtoint(edCodFed.Text);
|
||||
end;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObjGet := wLista.getObjectByIndex(wCont);
|
||||
with wObjGet as TPais do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wLista.Update(wCont, wObj);
|
||||
wNew := false;
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
if wNew = true then
|
||||
begin
|
||||
wLista.Inserir(wObj, TPais);
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
end;
|
||||
|
||||
end
|
||||
else
|
||||
if edCod.Text = '' then
|
||||
begin
|
||||
wZero := true;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObjGet := wLista.getObjectByIndex(wCont);
|
||||
with wobjGet as TPais do
|
||||
begin
|
||||
if wCod > wMaior then
|
||||
wMaior := wCod;
|
||||
wZero := false;
|
||||
end;
|
||||
|
||||
end;
|
||||
wObj := TPais.Create;
|
||||
with wObj do
|
||||
begin
|
||||
if wZero then
|
||||
wCod := 0
|
||||
else
|
||||
wCod := wMaior+1;
|
||||
wPais := edPais.Text;
|
||||
wNacionalidade := edNacionalidade.Text;
|
||||
wCodFed := strtoint(edCodFed.Text);
|
||||
end;
|
||||
wLista.Inserir(wObj, TPais);
|
||||
if wClear then
|
||||
limpaCampos();
|
||||
end;
|
||||
// volta pro edit do inicio e altera status bar
|
||||
for wCont := 0 to ComponentCount-1 do
|
||||
if (Components[wCont].Tag = 0) and (Components[wCont] is TEdit) then
|
||||
with Components[wCont] as TEdit do
|
||||
begin
|
||||
setFocus;
|
||||
StatusBar1.Panels[0].Text := 'Aguardando';
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormPais.edCodExit(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wCont: Integer;
|
||||
wIndex: integer;
|
||||
wNew: boolean;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
wNew := true;
|
||||
for wCont := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wCont);
|
||||
with wObj as TPais do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
StatusBar1.Panels[0].Text := 'Alterando registro';
|
||||
edCod.Text := inttostr(wCod);
|
||||
edPais.Text := wPais;
|
||||
edNacionalidade.Text := wNacionalidade;
|
||||
edCodFed.Text := inttostr(wCodFed);
|
||||
wNew := false;
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
if wNew then
|
||||
StatusBar1.Panels[0].Text := 'Novo registro';
|
||||
end
|
||||
else
|
||||
if edCod.Text = '' then
|
||||
StatusBar1.Panels[0].Text := 'Novo registro'
|
||||
else
|
||||
StatusBar1.Panels[0].Text := 'Aguardando';
|
||||
end;
|
||||
|
||||
procedure TFormPais.btAnteriorClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wObj2: TObject;
|
||||
wIndex: integer;
|
||||
I: Integer;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
for I := 1 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TPais do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
wIndex := wLista.getIndexOfObj(wObj);
|
||||
end;
|
||||
end;
|
||||
if wIndex-1 >= 0 then
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wIndex-1);
|
||||
with wObj as TPais do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edPais.Text := wPais;
|
||||
edNacionalidade.Text := wNacionalidade;
|
||||
edCodFed.Text := inttostr(wCodFed);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormPais.btBuscarClick(Sender: TObject);
|
||||
var
|
||||
FormGrid: TFormGrid;
|
||||
begin
|
||||
inherited;
|
||||
FormGrid := TFormGrid.Create(nil);
|
||||
FormGrid.geraGrid(wLista, TPais);
|
||||
FormGrid.Show;
|
||||
end;
|
||||
|
||||
procedure TFormPais.btContarClick(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
ShowMessage(inttostr(wLista.Count));
|
||||
end;
|
||||
|
||||
procedure TFormPais.btExcluirClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
I: integer;
|
||||
begin
|
||||
inherited;
|
||||
try
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TPais do
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wLista.Excluir(I);
|
||||
break;
|
||||
end;
|
||||
end;
|
||||
finally
|
||||
edCod.Clear;
|
||||
edPais.Clear;
|
||||
edNacionalidade.Clear;
|
||||
edCodFed.Clear;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormPais.btExportarClick(Sender: TObject);
|
||||
var
|
||||
DadoArmazenado: TDadoArmazenado;
|
||||
wDir: string;
|
||||
begin
|
||||
inherited;
|
||||
DadoArmazenado := TDadoArmazenado.Create;
|
||||
if SaveTextFileDialog1.Execute then
|
||||
wDir := SaveTextFileDialog1.FileName;
|
||||
DadoArmazenado.saveToFile(wDir, wLista, TPais);
|
||||
end;
|
||||
|
||||
procedure TFormPais.btImportarClick(Sender: TObject);
|
||||
var
|
||||
DadoArmazenado: TDadoArmazenado;
|
||||
wDir: string;
|
||||
begin
|
||||
inherited;
|
||||
DadoArmazenado := TDadoArmazenado.Create;
|
||||
if OpenTextFileDialog1.Execute then
|
||||
wDir := OpenTextFileDialog1.FileName;
|
||||
wLista := DadoArmazenado.loadFromFile(wDir, TPais);
|
||||
end;
|
||||
|
||||
procedure TFormPais.btInserirClick(Sender: TObject);
|
||||
var
|
||||
Pais: TPais;
|
||||
wObj: TObject;
|
||||
wIndex: integer;
|
||||
I: integer;
|
||||
wAux: integer;
|
||||
begin
|
||||
inherited;
|
||||
Pais := TPais.Create;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
with Pais do
|
||||
begin
|
||||
wCod := strtoint(edCod.Text);wPais := edPais.Text;wNacionalidade := edNacionalidade.Text;wCodFed := strtoint(edCodFed.Text);
|
||||
end;
|
||||
if wLista.Count >= 1 then
|
||||
begin
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TPais do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
begin
|
||||
wAux := 1;
|
||||
wLista.Update(I, Pais);
|
||||
break;
|
||||
end
|
||||
else
|
||||
wAux := 0;
|
||||
end;
|
||||
end;
|
||||
if wAux =0 then
|
||||
wLista.Inserir(Pais, TPais)
|
||||
end
|
||||
else
|
||||
wLista.Inserir(Pais, TPais);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormPais.btProximoClick(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
wIndex: integer;
|
||||
I: integer;
|
||||
begin
|
||||
inherited;
|
||||
if (trystrtoint(edCod.Text, wIndex)) then
|
||||
begin
|
||||
for I := 0 to wLista.Count-1 do
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(I);
|
||||
with wObj as TPais do
|
||||
begin
|
||||
if wCod = strtoint(edCod.Text) then
|
||||
wIndex := wLista.getIndexOfObj(wObj);
|
||||
end;
|
||||
end;
|
||||
if wIndex+1 < wLista.Count then
|
||||
begin
|
||||
wObj := wLista.getObjectByIndex(wIndex+1);
|
||||
with wObj as TPais do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edPais.Text := wPais;
|
||||
edNacionalidade.Text := wNacionalidade;
|
||||
edCodFed.Text := inttostr(wCodFed);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormPais.cbLimparCamposClick(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
if wClear then
|
||||
wClear := false
|
||||
else
|
||||
wClear := true
|
||||
end;
|
||||
|
||||
procedure TFormPais.FormActivate(Sender: TObject);
|
||||
var
|
||||
wObj: TObject;
|
||||
begin
|
||||
inherited;
|
||||
if Dado3.Dado > -1 then
|
||||
begin
|
||||
wObj := TPais.Create;
|
||||
wObj := wLista.getObjectByIndex(Dado3.Dado);
|
||||
with wObj as TPais do
|
||||
begin
|
||||
edCod.Text := inttostr(wCod);
|
||||
edPais.Text := wPais;
|
||||
edNacionalidade.Text := wNacionalidade;
|
||||
edCodFed.Text := inttostr(wCodFed);
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TFormPais.FormCreate(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
wLista := TLista.Create;
|
||||
Dado3 := TDados.Create;
|
||||
wClear := false;
|
||||
end;
|
||||
|
||||
initialization
|
||||
registerclass(TFormPais);
|
||||
end.
|
||||
38
UnitFormSplash.dfm
Normal file
38
UnitFormSplash.dfm
Normal file
@ -0,0 +1,38 @@
|
||||
object FormSplash: TFormSplash
|
||||
Left = 0
|
||||
Top = 0
|
||||
Caption = 'FormSplash'
|
||||
ClientHeight = 231
|
||||
ClientWidth = 505
|
||||
Color = clBtnFace
|
||||
Font.Charset = DEFAULT_CHARSET
|
||||
Font.Color = clWindowText
|
||||
Font.Height = -11
|
||||
Font.Name = 'Tahoma'
|
||||
Font.Style = []
|
||||
FormStyle = fsMDIForm
|
||||
Menu = MainMenu1
|
||||
OldCreateOrder = False
|
||||
WindowState = wsMaximized
|
||||
PixelsPerInch = 96
|
||||
TextHeight = 13
|
||||
object MainMenu1: TMainMenu
|
||||
Left = 456
|
||||
Top = 184
|
||||
object Cadastrar1: TMenuItem
|
||||
Caption = 'Cadastrar'
|
||||
object TFormCidade: TMenuItem
|
||||
Caption = 'Cidade'
|
||||
OnClick = mmClick
|
||||
end
|
||||
object TFormEstado: TMenuItem
|
||||
Caption = 'Estado'
|
||||
OnClick = mmClick
|
||||
end
|
||||
object TFormPais: TMenuItem
|
||||
Caption = 'Pa'#237's'
|
||||
OnClick = mmClick
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
43
UnitFormSplash.pas
Normal file
43
UnitFormSplash.pas
Normal file
@ -0,0 +1,43 @@
|
||||
unit UnitFormSplash;
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
|
||||
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus, UnitFormPadrao, UnitFormCidade;
|
||||
|
||||
type
|
||||
TFormSplash = class(TForm)
|
||||
MainMenu1: TMainMenu;
|
||||
Cadastrar1: TMenuItem;
|
||||
TFormCidade: TMenuItem;
|
||||
TFormEstado: TMenuItem;
|
||||
TFormPais: TMenuItem;
|
||||
procedure mmClick(Sender: TObject);
|
||||
private
|
||||
{ Private declarations }
|
||||
public
|
||||
{ Public declarations }
|
||||
end;
|
||||
|
||||
var
|
||||
FormSplash: TFormSplash;
|
||||
|
||||
implementation
|
||||
|
||||
{$R *.dfm}
|
||||
|
||||
procedure TFormSplash.mmClick(Sender: TObject);
|
||||
var
|
||||
wNome: string;
|
||||
wForm: TFormClass;
|
||||
wF: TForm;
|
||||
begin
|
||||
with Sender as TMenuItem do
|
||||
wNome := name;
|
||||
wForm := TFormClass(FindClass(wNome));
|
||||
wF := wForm.Create(FormSplash);
|
||||
wF.Show;
|
||||
end;
|
||||
|
||||
end.
|
||||
90
UnitLista.pas
Normal file
90
UnitLista.pas
Normal file
@ -0,0 +1,90 @@
|
||||
unit UnitLista;
|
||||
|
||||
interface
|
||||
|
||||
uses Dialogs, Classes, Contnrs, System.Generics.Collections, SysUtils;
|
||||
|
||||
type
|
||||
TLista = class
|
||||
private
|
||||
strict private FListaClass: TClass;
|
||||
strict private FLista: TObjectList;
|
||||
public
|
||||
constructor Create;
|
||||
procedure Inserir(wObj: TObject; wClass: TClass);
|
||||
procedure Update(Index: integer; wObj: TObject);
|
||||
procedure Excluir(Index: integer);
|
||||
procedure InserirPorIndex(Index: integer; wObj: TObject; wClass: TClass);
|
||||
function Count: integer;
|
||||
function getObjectByIndex(Index: integer): TObject;
|
||||
function getObjectList: TObjectList;
|
||||
function getIndexOfObj(wObj: TObject): integer;
|
||||
end;
|
||||
|
||||
implementation
|
||||
constructor TLista.Create;
|
||||
begin
|
||||
FLista := TObjectList.Create;
|
||||
end;
|
||||
|
||||
function TLista.getObjectByIndex(Index: Integer): TObject; // retorna um objeto de acordo com o index passado por parametro
|
||||
var
|
||||
wObj: TObject;
|
||||
begin
|
||||
wObj := FListaClass.Create;
|
||||
if Index < FLista.Count then
|
||||
{if Index <> 0 then}
|
||||
wObj := FLista.Items[Index];
|
||||
Result := wObj;
|
||||
end;
|
||||
|
||||
function TLista.Count: integer;
|
||||
begin
|
||||
Result := FLista.Count;
|
||||
end;
|
||||
|
||||
function TLista.getObjectList: TObjectList;
|
||||
begin
|
||||
Result := FLista;
|
||||
end;
|
||||
|
||||
function TLista.getIndexOfObj(wObj: TObject): integer;
|
||||
begin
|
||||
Result := FLista.IndexOf(wObj);
|
||||
end;
|
||||
|
||||
procedure TLista.Update(Index: integer; wObj: TObject);
|
||||
begin
|
||||
if FLista.Count > 0 then
|
||||
FLista.Delete(Index);
|
||||
FLista.Insert(Index, wObj);
|
||||
end;
|
||||
|
||||
procedure TLista.Inserir(wObj: TObject; wClass: TClass);
|
||||
begin
|
||||
FListaClass := wClass; // guarda o nome da classe pra poder instanciá-la em outras procedures
|
||||
FLista.Add(wObj);
|
||||
end;
|
||||
|
||||
procedure TLista.InserirPorIndex(Index: integer; wObj: TObject; wClass: TClass);
|
||||
begin
|
||||
FListaClass := wClass;
|
||||
FLista.Insert(Index, wObj);
|
||||
end;
|
||||
|
||||
procedure TLista.Excluir(Index: Integer);
|
||||
var
|
||||
wObj: TObject;
|
||||
begin
|
||||
wObj := FListaClass.Create;
|
||||
|
||||
if FLista.Count > Index then
|
||||
begin
|
||||
FLista.Delete(Index);
|
||||
ShowMessage('sucesso!');
|
||||
end
|
||||
else
|
||||
ShowMessage('Objeto não encontrado na lista!');
|
||||
end;
|
||||
|
||||
end.
|
||||
14
UnitSharedVariables.pas
Normal file
14
UnitSharedVariables.pas
Normal file
@ -0,0 +1,14 @@
|
||||
unit UnitSharedVariables;
|
||||
|
||||
interface
|
||||
|
||||
type
|
||||
TSharedVariables = class(TObject)
|
||||
private
|
||||
public
|
||||
SetarDados: integer;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
end.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user