Componentes Dinâmicos Em Form Dinâmico, ComponentCount = 0
30/06/2008
0
Fala pessoal, eu de novo com esses componentes dinâmicos
bo, criei um form e elguns checks dinamicos nesse form, qdo vou dar um componentcount nesse form, ele retona 0, como???
valew de novo
bo, criei um form e elguns checks dinamicos nesse form, qdo vou dar um componentcount nesse form, ele retona 0, como???
function TfrmPadrao.CarregaListaOpcoes(Titulo : String; Opcoes: TStringList): String; var i, Altura : Integer; frmLista : TForm; Grupo : TGroupBox; CheckItens : array of TCheckBox; Selecionadas : String; begin SetLength(CheckItens, Opcoes.Count); // Criando o Form dinâmico // frmLista := TForm.Create(Self); frmLista.Position := poScreenCenter; frmLista.BorderStyle := bsSingle; frmLista.BorderIcons := [biSystemMenu]; frmLista.Caption := ´Opções´; frmLista.Width := 300; // Criando o GroupBox // Grupo := TGroupBox.Create(Self); // UM COMPONENTE Grupo.Parent := frmLista; Grupo.Top := 4; Grupo.Left := 8; Grupo.Width := 278; Grupo.Caption := ´ ´ + Titulo + ´ ´; Grupo.Font.Style := [fsBold]; Altura := 18; for i := 0 to Opcoes.Count -1 do // MAIS ALGUNS begin CheckItens[i] := TCheckBox.Create(Self); CheckItens[i].Parent := Grupo; CheckItens[i].Caption := Opcoes.Strings[i]; CheckItens[i].Top := Altura; CheckItens[i].Left := 12; CheckItens[i].Width := 260; CheckItens[i].Font.Style := [fsBold]; Altura := Altura + 25; end; Grupo.Height := Altura; frmLista.Height := Grupo.Height + 44; // Mostra o Form // frmLista.ShowModal; for i := 0 to frmLista.ComponentCount -1 do // <<=== RETORNA ZERO, HEIN??? if frmLista.Components[i] is TCheckBox then if (frmLista.Components[i] as TCheckBox).Checked = True then Selecionadas := Selecionadas + ´1´ else Selecionadas := Selecionadas + ´0´; Result := Selecionadas; FreeAndNil(frmLista); end;
valew de novo
Seu_madruga
Curtir tópico
+ 0
Responder
Posts
30/06/2008
Brunodsr
pelo seu codigo, ele tem que retornar zero mesmo.
Vc ta passando SELF como owner na criacao dos objetos ao inves de passar o novo form criado.
Troque o self pelo novo objeto do tipo TForm criado e repita os testes.
Espero ter ajudado
Vc ta passando SELF como owner na criacao dos objetos ao inves de passar o novo form criado.
Troque o self pelo novo objeto do tipo TForm criado e repita os testes.
Espero ter ajudado
Responder
30/06/2008
Seu_madruga
Perfeito!!! :D
Era isso mesmo amigo, valew mesmo, salvou minha vida hehehe
Eu achei que a propriedade Parent já fazia o vínculo dos componentes mostrando quem era o owner, mas foi vacilo meu mesmo, no próprio create vc passa o owner!
resolvido!!!
Era isso mesmo amigo, valew mesmo, salvou minha vida hehehe
Eu achei que a propriedade Parent já fazia o vínculo dos componentes mostrando quem era o owner, mas foi vacilo meu mesmo, no próprio create vc passa o owner!
resolvido!!!
Responder
Clique aqui para fazer login e interagir na Comunidade :)