Lazarus - Ayuda! showmessage no aparece cdo me salgo del rango... que hago mal?

<<>>
 
Vista:
sin imagen de perfil
Val: 6
Ha mantenido su posición en Lazarus (en relación al último mes)
Gráfica de Lazarus

Ayuda! showmessage no aparece cdo me salgo del rango... que hago mal?

Publicado por J N (2 intervenciones) el 22/07/2020 00:30:30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
procedure TForm1.btnModificarClick(Sender: TObject);
var
   fil,col:integer;
   nronuevo,nronuevo2,nro:string;
   col2,fil2:string;
begin
     col2:= inputbox('Ingrese','Seleccione columna  A, B, C, D, E ','');
     fil2:= inputbox('Ingrese','Seleccione Fila desde 1 a 5','');
 
 
 
     if (col2 = 'A') or (col2 = 'a') or (col2 = 'B') or (col2 = 'b') or (col2 = 'C') or (col2 = 'c') or (col2 = 'D') or (col2 = 'd') or (col2 = 'E') or (col2 = 'e')then
           begin
           case col2 of
           'A': col2:= '1';
           'a': col2:= '1';
           'B': col2:= '2';
           'b': col2:= '2';
           'C': col2:= '3';
           'c': col2:= '3';
           'D': col2:= '4';
           'd': col2:= '4';
           'E': col2:= '5';
           'e': col2:= '5'
 
           else
             showmessage ('Columna seleccionada incorrecta');
           end;
 
    if (fil2 = '1') or (fil2 = '2') or (fil2 = '3') or (fil2 = '4') or (fil2 = '5')then
           begin
           case fil2 of
 
           '1': fil2:= '1';
           '2': fil2:= '2';
           '3': fil2:= '3';
           '4': fil2:= '4';
           '5': fil2:= '5'
 
           else
            showmessage ('Fila seleccionada incorrecta');
 
           end;
 
     for fil:= 1 to 5 do
     for col:= 1 to 5 do
 
 
            if (fil= strtoint (fil2)) and (col= strtoint (col2))  then
             begin
                  nronuevo2:= inputbox('Ingrese','nuevo número','');
                  Grilla.Cells [col,fil]:= nronuevo2 ;
                  m[fil,col] := strtoint (nronuevo2) ;
                  listBox1.items.clear();
                  lblpromedio.caption:='';
                  btnmostrar.enabled:=false;
                  btndebajodelpromedio.enabled:=false;
 
 
             end;
 
 
 
            end;
 
           end;
 
end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda! showmessage no aparece cdo me salgo del rango... que hago mal?

Publicado por Nacho (2 intervenciones) el 23/07/2020 23:14:36
Cómo va a salirte el mensaje si al case sólo entra si estás dentro del rango.

Si pones un if sobra el case, y si pones un case sobra el if.

1
2
3
4
5
6
begin
     col2:= LowerCase(inputbox('Ingrese','Seleccione columna  A, B, C, D, E ',''));
     fil2:=  LowerCase(inputbox('Ingrese','Seleccione Fila desde 1 a 5',''));
     col2:=IntToStr(col2 - 'a' + 1);
 
end;

No tengo lazarus pero será algo así.
¿Para qué pones un case en el fil2 si case '1': fil2:= '1';?
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
sin imagen de perfil
Val: 6
Ha mantenido su posición en Lazarus (en relación al último mes)
Gráfica de Lazarus

Ayuda! showmessage no aparece cdo me salgo del rango... que hago mal?

Publicado por J N (2 intervenciones) el 24/07/2020 04:19:02
Gracias por tu ayuda

1
col2:=IntToStr(col2 - 'a' + 1);     // Me da error esta conversion. (col2 la tengo declarada como string).

Nuevamente agradezco tu aporte.
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

Ayuda! showmessage no aparece cdo me salgo del rango... que hago mal?

Publicado por Nacho (2 intervenciones) el 24/07/2020 10:20:30
La teoría es que tienes un string con un sólo carácter, col2, que pasado a minúsculas con LowerCase puede valer a, b, c, d o e. El código ascii de a es 97, de b es 98, de c es 99. Quieres que valga col2 "1", "2", "3", "4" o "5". El código ascii de '1' es 49, de '2' es 50, de '3' es 51.

El carácter de col2 está en col2[1]. Si col2 = "a" y al valor ascci de col2[1] le quitas 48 te queda que col2="1", Si col2="b" te queda que col2="2".
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