Fórum GroupBox e Edit em RunTime Delphi #547411
02/03/2016
0
Bom dia, tenho algumas duvidas sobre criação em RunTime, pois bem, tenho um form onde crio edit's, label's e groupbox's em RUNTIME, eu trago da tabela onde tenho um campo de ativado ou desativado, quando ativo cria o objeto no form, nessa minha tabela tenho o campo grupo, que identifica cada edit para um grupo.
Agora vem a duvida, como fazer para criar em runtime os edit's com seus respectivos groupbox.
como fazer para que quando criar cada edit seja posicionado dentro do groupbox especificado.
segue o código da criação em Runtime até o momento.
Agora vem a duvida, como fazer para criar em runtime os edit's com seus respectivos groupbox.
Exemplo: edit1, edit2 pertencem ao gropo Pessoa, ja o edit3, edit4 pertencem ao grupo empresa
como fazer para que quando criar cada edit seja posicionado dentro do groupbox especificado.
segue o código da criação em Runtime até o momento.
procedure TFrm_Cadastro_Cliente.FormShow(Sender: TObject);
var
I, J, K, L, sql_delec: Integer;
sql_campo, sql_valor, sql_completo : String;
begin
DM := TDataM_Basico.Create(Self);
DM.QSelect_pirado.SQL.Clear;
DM.QSelect_pirado.SQL.Add('SELECT ID_COMPONENTE,NOME_COMPONENTE, CAPTION_COMPONENTE, TAMANHO_COMPONENTE, GRUPO_COMPONENTE FROM COMPONENTES WHERE ID_COMPONENTE BETWEEN 1 AND 50 AND STATUS_COMPONENTE = '+QuotedStr('1'));
DM.QSelect_pirado.Open;
DicionarioLabel:= TObjectDictionary<String,TObject>.Create;
DicionarioEdit:= TObjectDictionary<String,TObject>.Create;
try
J:= 60;
K:= 85;
L:= 0;
for I := 0 to DM.QSelect_pirado.RowsAffected-1 do
begin
J:= J+60;
K:= K+60;
L:= L+100;
//CRIA GROUPBOX
gro_ := TGroupBox.Create(Self);
gro_.Name := 'gro_'+ DM.QSelect_pirado.FieldByName('GRUPO_COMPONENTE').AsString;
gro_.Parent := Frm_Cadastro_Cliente;
gro_.Caption:= 'Grupo '+DM.QSelect_pirado.FieldByName('GRUPO_COMPONENTE').AsString;
gro_.Top := L;
gro_.Left := 50;
gro_.Width := 800;
gro_.Height := 100;
//CRIA OS LABELS
lbl_ := TLabel.Create(self);
lbl_.Name := 'lbl_'+DM.QSelect_pirado.FieldByName('NOME_COMPONENTE').AsString;
lbl_.Parent := Frm_Cadastro_Cliente;
lbl_.Caption:= DM.QSelect_pirado.FieldByName('CAPTION_COMPONENTE').AsString;
lbl_.Anchors:= [akTop, akRight];
lbl_.Top := J;
lbl_.Left := 60;
DicionarioLabel.Add(IntToStr(i),lbl_);
//CRIA OS EDITS
edt_ := TMaskEdit.Create(Self);
edt_.Name :='edt_'+DM.QSelect_pirado.FieldByName('NOME_COMPONENTE').AsString;
edt_.Parent := Frm_Cadastro_Cliente;
edt_.Text := '';
edt_.Anchors:= [akTop, akRight];
edt_.Font.Color := 000000;
edt_.Top := K;
edt_.Width := DM.QSelect_pirado.FieldByName('TAMANHO_COMPONENTE').AsInteger;
edt_.Left := 60;
DicionarioEdit.Add(IntToStr(i),edt_);
DM.QSelect_pirado.Next;
end;
finally
DM.QSelect_pirado.Close;
end;
end;Felipe Tomm
Curtir tópico
+ 0
Responder
Post mais votado
02/03/2016
Não sei se entendi bem, mas experimente alterar o Parent dos Label's e Edit's para o nome do Groupbox.
Troque as linhas:
Por:
Troque as linhas:
lbl_.Parent := Frm_Cadastro_Cliente; edt_.Parent := Frm_Cadastro_Cliente;
Por:
lbl_.Parent := TGroupBox(Frm_Cadastro_Cliente.FindComponent('gro_' + DM.QSelect_pirado.FieldByName('GRUPO_COMPONENTE').AsString));
edt_.Parent := TGroupBox(Frm_Cadastro_Cliente.FindComponent('gro_' + DM.QSelect_pirado.FieldByName('GRUPO_COMPONENTE').AsString));Natanael Ferreira
Responder
Gostei + 1
Mais Posts
02/03/2016
Felipe Tomm
SHow, isso mesmo!
Obrigado
Obrigado
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)