Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

luanamarques

nº digitado em um campo, para criar outro, conforme o numero informado

Recommended Posts

Olá, gostaria de saber se alguém pode me ajudar com esta dúvida:

 

estou fazendo um formulário. no qual terei um campo (texto) para que seja inserido um nº de pessoas,

 

porém gostaria que quando colocado o número ele me gerase mais campos de texto abaixo, de acordo com o número digitado na primeira caixa de texto, exemplo:

 

nº de pessoas: 4
Campo(text):
Campo(text):
Campo(text):
Campo(text):


alguém sabe como posso fazer isso?

desde já, obrigada!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo(a).

 

Acredito que isso seja o que está procurando.

 

 

var
  edt: TEdit;
  t, i: Integer;
begin  
  t := 100;
  for i := 1 to StrToInt( edtNumPessoas.Text ) do
    try
      edt := TEdit.Create( Self );
      edt.Name := 'edt'+IntToStr( i );
      edt.Parent := Self;
      edt.width := 150;
      edt.Left := 8;
      edt.Top := t;
      Inc( t, 30 ); 
   except
   end;
end;

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

É o controle desses dados?

 

A resposta está boa, mas sem controle dos dados. O ideal seria colocar esses campos TEdit em um vetor e controle - los usando um objeto. Você pretende guardar essas informações em um banco de dados? É necessário então, criar duas tabelas: uma com o cadastro principal e outra com o campo nome e o campo de ligação daquele nome com o cadastro principal através de uma chave primária. Consegues resolver daí?

Compartilhar este post


Link para o post
Compartilhar em outros sites

É o controle desses dados?

 

A resposta está boa, mas sem controle dos dados. O ideal seria colocar esses campos TEdit em um vetor e controle - los usando um objeto. Você pretende guardar essas informações em um banco de dados? É necessário então, criar duas tabelas: uma com o cadastro principal e outra com o campo nome e o campo de ligação daquele nome com o cadastro principal através de uma chave primária. Consegues resolver daí?

sim, guardarei essas informações em um banco de dados. até a parte das duas tabelas compreendi, e depois como prossigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como prosseguir...

 

Bom, você tem que ter em mente que na hora de criar novos nomes você pode utilizar vários TEdit como você está querendo e usar um loop que detecte quantos TEdit foram preenchidos e em cada um você criará um INSERT novo em sua tabela.

 

Exemplo:

 

 

 

create table "Reuniao"

(

ID integer auto_increment;

Dia date;

Pessoas integer;

Descricao varchar(250)

)

 

create table "Pessoa" -- que irão participar das reuniões

(

ID integer auto_increment;

Reuniao_ID integer;

Nome varchar(99)

)

 

insert into "Reuniao" (dia, pessoas, descricao) values ('2013-04-05',2,'Reunião anual condomínio'); -- esse insert vai criar o ID nº 1 automaticamente

 

insert into "Pessoa" (reuniao_id, nome) values(1,'eduardo alcantara'); -- esse insert vai criar o ID 1 mas vai apontar para o reuniao_ID 1 da 1ª tabela

insert into "Pessoa" (reuniao_id, nome) values(1,'luannna marques'); -- esse insert vai criar o ID 2 mas vai apontar para o reuniao_ID 1 da 1ª tabela

 

Agora quando você for abrir novamente o sistema, esses dados pdoerão estar em uma TDBGrid ou você deverá criar novamente um TEdit para cada pessoa naquela reunião que já foi inserida.

 

 

 

Select * from "Pessoa" where Reuniao_ID = 1;

 

Eu pessoalmente prefiro fazer uma outra janela de edição com os campos da tabela pessoa.

Assim, quando você fosse criar decidir quantas pessoas fossem participar da reunião, faria um botão "adicionar uma pessoa" e assim uma nova janela apareceria para digitar os dados de cada pessoa, e depois de fechada, salvaria a nova linha na tabela. Você manteria na janela principal uma tabela TDBGrid com a lista de pessoas já cadastradas e ao clicar com o mouse em cima de uma linha, a janela apareceria novamente para você editar o texto caso tivesse escrito o nome errado. Depois de fechar então, alteraria na tabela.

 

 

update "Pessoa" set nome='Luana Marques' where ID = 2;

 

Entendeu? Fica mais padronização com o que se faz hoje em dia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigos.

 

Fico feliz pelo resultado esperado.

 

Até a próxima. :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.