Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
E aee Galera.
Não sei se é o lugar certo para isso, se não for avisem ae!
Estou postando o código que eu e meus amigos de escola desenvolvemos para a montagem de formulários em run-time,poupando assim tempo de desenvolvimento em design de telas.
Se alguém verificar algum erro ou tiver alguma sugestão para melhorar a classe, posta ae!!
Valeu!!
unit unclasscreateform;
{Classe que montará um formulário de
cadastro em run-time poupando tempo de
desenvolvimento com design de telas.
funciona melhor caso forem utilizados skins
já que assim a customização de componentes não se
faz necessária }
//Alunos do 3° módulo técnico em informática EtecAvaré-2009
interface
uses
windows,forms,graphics,sysutils,db,dbclient,classes,dbctrls,stdctrls;
type
TCreateform=class
private
// os quatro atributos comentados não serão necessários por enquanto
{dscreate:TDataSet;
colorfont:TColor;
sizefont:integer;
stylefont:TFontStyle;}
procedure createlabels(nomeform:TForm;dscreate:TDataSet);
procedure createedits(nomeform:TForm;dscreate:TDataSet);
procedure createframe(nomeform:tform);
function createdatasource(ds:TDataSet):TDataSource;
public
constructor Create(aowner:tcomponent;nomeform:tform;ds:TDataSet);reintroduce;
end;
var
frmcreate:TCreateform;uses Controls;
{ TCreateform }
constructor TCreateform.Create(aowner: tcomponent;nomeform:TForm;ds:TDataSet);
begin
{apos deserdar a classe, o construtor ficou mais tranquilo de se trabalhar}
createlabels(nomeform,ds);
createedits(nomeform,ds);
end;
function TCreateform.createdatasource(ds: TDataSet): TDataSource; dsource:=TDataSource.Create(nil);
dsource.DataSet:=ds;
Result:=dsource;
end;
procedure TCreateform.createedits(nomeform: TForm;dscreate:TDataSet);
var edits:array of TDBEdit;
i:integer; SetLength(edits,dscreate.FieldCount);
for I := 0 to dscreate.FieldCount-1 do
begin
edits[i]:=TDBEdit.Create(nomeform);
with edits[i]do
begin
Parent:=nomeform;
Font.Color:=colorfont;
Font.Size:=sizefont;
Font.Style:=[stylefont];
Left:=150;
Top:=(i+1)*30;
DataSource:=createdatasource(dscreate);
DataField:=dscreate.Fields[i].FieldName;
end;
end;
end;
procedure TCreateform.createlabels(nomeform: TForm;dscreate:TDataSet);
var labels:array of TLabel;
i:integer; SetLength(labels,dscreate.FieldCount);
for i:=0 to dscreate.FieldCount-1 do
begin
labels[i]:=TLabel.Create(nomeform);
with labels[i]do
begin
Parent:=nomeform;
left:=50;
top:=(i+1)*30;
Caption:=dscreate.Fields[i].DisplayLabel;
end;
end;
end;
procedure TCreateform.createframe(nomeform: tform);end.
Carregando comentários...