crud-delphi/UnitFormGrid.pas
2018-08-17 12:28:17 -03:00

113 lines
2.8 KiB
ObjectPascal

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.