segunda-feira, 22 de dezembro de 2014
Anonymous Methods + Class Helper Delphi + Métodos de Class
Caros, mostrarei como otimizar a chamada dos seus formulários utilizando (Anonymous Methods + Class Helper Delphi + Métodos de Class);
- Crie uma unit, na seção type adicione;
TMetodo = reference to procedure(Form: TForm);
TFormsHelper = class helper for TForm
class function ShowF(Metodo: TMetodo): TModalResult;
end;
- Implementação;
class function TFormsHelper.ShowF(Metodo: TMetodo): TModalResult;
var
loForm: TForm;
begin
Result:= mrNone;
loForm:= Self.Create(Application);
with loForm do
begin
try
if Assigned(Metodo) then
Metodo(loForm);
ShowModal;
finally
Result:= ModalResult;
Free;
end;
end;
end;
- Para utilizar o método basta adicionar a unit ao seu form
- Exemplo;
procedure TMain.Button1Click(Sender: TObject);
begin
if TMeuForm.ShowF(procedure(Form: TForm)
begin
with TMeuForm(Form) do
begin
//Suas implementações, exemplo abaixo
//Edit1.Text:= 'Develop 001';
//Edit2.Text:= 'Develop 002';
//Edit3.Text:= 'Develop 003';
end;
end) = mrOk then ShowMessage('Salvou')
else ShowMessage('Cancelou');
end;
sábado, 20 de dezembro de 2014
Anonymous Methods + Class Helper Delphi
- Crie uma unit, na seção type adicione;
TMetodoDataSet = reference to procedure(Table: TDataSet);
TDataSetHelper = class helper for TDataSet
procedure Eoff(Metodo: TMetodoDataSet);
end;
- Implementação;
{ TDataSetHelper }
procedure TDataSetHelper.Eoff(Metodo: TMetodoDataSet);
begin
DisableControls;
try
First;
while not Eof do
begin
Metodo(Self);
Next;
end;
finally
EnableControls;
end;
end;
- Para utilizar o método basta adicionar a unit ao seu form
- Exemplo;
with FDMemTable1 do
begin
with FieldDefs do
begin
Add('cod', ftInteger);
Add('nome', ftString, 20);
end;
CreateDataSet;
AppendRecord([1, 'Develop 001']);
AppendRecord([2, 'Develop 002']);
AppendRecord([3, 'Develop 003']);
AppendRecord([4, 'Develop 004']);
end;
- Exemplo:
FDMemTable1.eoff(procedure(Table: TDataSet)
begin
ShowMessage(Table.FieldByName('nome').AsString)
end)
Assinar:
Postagens (Atom)