Delphi - Problema con Arrays

   
Vista:

Problema con Arrays

Publicado por Ragaru (33 intervenciones) el 07/12/2012 20:06:30
Con el trozo de programa siguiente, pretendo que Edit1 y Edit2 adquieran el contenido de elementos
de un Array. Como todos sabemos, no hay nada más frustante en programación que creer que se
ha escrito el código correcto `pero que NO funciona como se esperaba.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.BitBtna1Click (Sender,TObject);
var    X: Integer;  Tabla: Array [1..49] of Integer;
Begin   For X:= 1 To 49 Do
                   Tabla[X]:= 0; // Pone a cero todos los elementos de la Tabla
                    For X:= 1 To 49 Do
                           Begin If Tabla[X] > 0 Then
                                       Begin Edit1.Clear; Edit1.Text := IntToStr(Tabla[X]); // La Tabla la cargo en algunos
                                                                                                                                    elementos anteriormente
                                                   Tabla[X] := 0; // Para evitar que el Edit2 contenga lo mismo que Edit1
                                          End; // End IF
                             End; // End For..To
                    For X:= 1 to 49 Do
                                  Begin
                                    If Tabla[X] > 0 Then
                                        Begin
                                              Edit2.Clear; Edit2.Text := IntToStr(Tabla[X]),
                                              Tabla [X]:= 0;
                                        End;
                                  End;


A pesar de creer que el código es correcto, la realidad es que solo consigo que Edit1 contenga solo
el último numero introducido en la Tabla, pero NADA en Edit2 y, además los elementos de donde
se supone que han salidos los contenidos para Edit1 y Edit2 NO quedan a cero.
Si alguién me puede indicar por qué no funciona este código y cual seria el correcto, le quedaria
muy agradecido.
Saludos y gracias anticipadas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder

Problema con Arrays

Publicado por E.T. (1107 intervenciones) el 08/12/2012 17:39:34
Pero no explicas claramente que quieres hacer en realidad, yo supongo que es lo siguiente:

Al presionar el boton recorres el array y quieres que el primer numero mayor a cero que encuentres pase al edit1, y el segundo numero pase al edit2, es eso correcto?

si tu respuesta es si, solo te hace falta un par de lineas en tu codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.BitBtna1Click (Sender,TObject);
  var X: Integer; Tabla: Array [1..49] of Integer;
Begin
  For X:= 1 To 49 Do
    Tabla[X]:= 0; // Pone a cero todos los elementos de la Tabla
  For X:= 1 To 49 Do Begin
    If Tabla[X] > 0 Then Begin
      Edit1.Clear; Edit1.Text := IntToStr(Tabla[X]); // La Tabla la cargo en algunos elementos anteriormente
      Tabla[X] := 0; // Para evitar que el Edit2 contenga lo mismo que Edit1
      Break;
    End; // End IF
  End; // End For..To
  For X:= 1 to 49 Do Begin
    If Tabla[X] > 0 Then Begin
      Edit2.Clear; Edit2.Text := IntToStr(Tabla[X]),
      Tabla [X]:= 0;
      Break;
    End;
  End;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Problema con Arrays

Publicado por Ragaru (33 intervenciones) el 09/12/2012 11:20:50
Sr. E.T. Como siempre ha acertado Vd. en su suposición y ya he podido comprobar que su solución
es correctisima.
Muchas gracias por su colaboración. La Comunidad de Programadores (Profesionales o Amateurs,
como es mi caso) debemos estarle muy agradecidos por sus numerosisimas y acertadisimas
soluciones.
Gracias, saludos y Felices Fiestas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar