GroupBox e Edit em RunTime Delphi
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
Mais Posts
Clique aqui para fazer login e interagir na Comunidade :)