Entrada de dados em um único campo

06/03/2016

0

Ola, boa a todos.

Eu sou relativamente novo do Delphi e estou tentando fazer uma aplicação que necessita entrada de mais de um valor em uma unica caixa, como na img.

[img]http://arquivo.devmedia.com.br/forum/imagem/476122-20160306-185935.jpg[/img]

No caso eu preciso que nos campos força e distancia seja inserido um valor, quando o usuário pressionar o botão "ok", os campos se limpam e ele pode inserir outro valor e assim por diante.

Seria possível fazer isso sem banco de dados? Em um numero limitado, por exemplo, em 10 entradas.
Emanuel

Emanuel

Responder

Posts

07/03/2016

Rafael Bosco

Sobre limpar os campos no botão OK, eu entendi, apenas estou confuso referente as 10 Entradas.... Você quer que seja possível fazer esse processo apenas 10 vezes? ou que ao apertar o botão OK, ele limpe os campos, mas salve os valores digitados, no caso, os últimos 10? Enfim, abaixo uma procedure que limpa os campos pra ti.


procedure LimpaCampos;
begin
   EdtForca.Text := EmptyStr;
   EdtDistancia.Text := EmptyStr;
end;
Responder

07/03/2016

Raimundo Pereira

Form1,
Var Qt_entradas: integer;


Declare a procedure
procedure LimpaCampos;
begin
EdtForca.Text := EmptyStr;
EdtDistancia.Text := EmptyStr;
Showmessage('Quantidade de Entradas atingido!')
end;


Coloque no Button OK
begin
if Qt_entradas=10 then
begin
LimpaCampos(self);
end
else
begin
Qt_entradas:=Qt_entradas+1;
>> Realiza o procedimento da entrada.
end;
end;

No on creat do form1
Qt_entradas:=0;
Responder

07/03/2016

Natanael Ferreira

Creio que você possa utilizar Array. Veja a definição:

Os vetores são listas sequenciais de elementos, armazenados de forma contígua na memória,
dessa forma o acesso aos elementos do vetor pode ser feita através de um índice.


Um exemplo de como usar:

Crie estas duas variáveis globais (Forca e Cont):

var
  Form1: TForm1;
  Forca: array [1 .. 10] of string;
  Cont: Integer = 0;


No seu botão 'Ok' para armanezamento ficaria assiim:

begin
  if Cont < 10 then
  begin
    if Edit2.Text <> EmptyStr then
    begin
      Forca[Cont + 1] := Edit2.Text;
      Inc(Cont);
      Edit2.Clear;
    end
  end
  else
    ShowMessage('As 10 forças já foram preenchidas');
end;


Veja este artigo sobre Array para melhor entendimento:
http://www.johnidouglas.com.br/uso-de-estruturas-com-vetores-no-delphi/
Responder

07/03/2016

Emanuel

Creio que você possa utilizar Array. Veja a definição:

Os vetores são listas sequenciais de elementos, armazenados de forma contígua na memória,
dessa forma o acesso aos elementos do vetor pode ser feita através de um índice.


Um exemplo de como usar:

Crie estas duas variáveis globais (Forca e Cont):

var
  Form1: TForm1;
  Forca: array [1 .. 10] of string;
  Cont: Integer = 0;


No seu botão 'Ok' para armanezamento ficaria assiim:

begin
  if Cont < 10 then
  begin
    if Edit2.Text <> EmptyStr then
    begin
      Forca[Cont + 1] := Edit2.Text;
      Inc(Cont);
      Edit2.Clear;
    end
  end
  else
    ShowMessage('As 10 forças já foram preenchidas');
end;


Veja este artigo sobre Array para melhor entendimento:
http://www.johnidouglas.com.br/uso-de-estruturas-com-vetores-no-delphi/


Deu certo desse jeito, obrigado pela ajuda.

Só mais uma duvida, para criar o botão calcular como eu vou pegar estes valores?

por exemplo no botão calcular eu preciso que a equação seja preenchida.

m= momento;
f1, f2, f3 ... f10 = força;
d1, d2, d3 ... d10 = distancia;

momento := força * distancia;

no caso eu posso ter ate 10 forças e 10 distancias,

então eu teria que calcular:

m := ((f1*d1)+(f2*d2)+...(f10*d10)) / distanciatotal;

Eu preciso criar 10 variáveis para força e 10 para distancia? e como eu pego estes dados?
Responder

07/03/2016

Natanael Ferreira

O Array é justamente para você não precisar criar 10 variáveis de Força. Você criar um array(vetor) para armazenar todos os 10 valores, um em cada índice do array.

Exemplo:

Forca: array [1 .. 10] of string;
Distancia: array[1..10] of string;


Você atribui os valores assim:

Forca[1]:= 1;
Forca[2]:= 2;
Forca[3]:= 3;
......
Forca[10]:= 10;


E para recuperar, por exemplo, o valor da força da posição 8 você faz:

Forca[8];


O seu botão ficaria mais ou menos assim:

m := ((Forca[1]*Distancia[1])+(Forca[2]*Distancia[2])+...(Forca[10]*Distancia[10])) / distanciatotal;
Responder

07/03/2016

Natanael Ferreira

Criei um projeto exemplo e salvei neste link:

http://www.4shared.com/zip/K_TKJFyDba/Array.html

Baixe e veja se te ajuda.
Responder

07/03/2016

Emanuel

Criei um projeto exemplo e salvei neste link:

http://www.4shared.com/zip/K_TKJFyDba/Array.html

Baixe e veja se te ajuda.



Vai ajudar demais, exatamente o que eu estou precisando. Muito obrigado pela ajuda Natanael.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar