PDA

Ver la Versión Completa : uso de case


juaarias
16-09-2011, 22:52:42
gente queria saber si se pues realizar 2 asignaciones en un misma sentencia del case:
algo asi quisiera sabeer
case (cmbNivel) then
0:lblNivel.caption:=alto;
1:lblNivel.Caption:=medio;
2:lblNivel.Caption:=bajo (y tambien poder hacer aqui=)lblAdvertencia:caption:=¡¡¡PRECAUCION¡¡¡;

ESPERO SE ENTIENDA

Casimiro Notevi
16-09-2011, 22:56:33
gente queria saber si se pues realizar 2 asignaciones en un misma sentencia del case:
algo asi quisiera sabeer
case (cmbNivel) then
0:lblNivel.caption:=alto;
1:lblNivel.Caption:=medio;
2:lblNivel.Caption:=bajo (y tambien poder hacer aqui=)lblAdvertencia:caption:=¡¡¡PRECAUCION¡¡¡;

ESPERO SE ENTIENDA


Hola, se puede, sólo debes encerrarlo entre begin end


case cmbNivel.itemindex of
0:lblNivel.caption:='alto';
1:lblNivel.Caption:='medio';
2:begin
lblNivel.Caption:='bajo';
lblAdvertencia:caption:='¡¡¡PRECAUCION!!!';
end;
end;



¡¡¡Recuerda poner etiquetas al código!!!

juaarias
16-09-2011, 22:57:58
busque y busque y no pude dar con esto gracias genio diculpas soy novato

oscarac
16-09-2011, 23:21:21
casimiro se refiere a estas etiquetas :rolleyes:
http://neftali.clubdelphi.com/images/UtilizarTAGs.png

juaarias
25-09-2011, 22:58:53
estoy intentado agragar a un case que si el itemIndex esta entre a y d, decir por ejemplo categoria UNO,no me doy cuenta como hacerlo ayuda plis jej
case cmbNivel.itemindex of
(a y d):lblNivel.caption:='Unoo';//obvio el y es simbolico muy pseudo jeje
1:lblNivel.Caption:='medio';
2:begin
lblNivel.Caption:='bajo';
lblAdvertencia:caption:='¡¡¡PRECAUCION!!!';
end;
end;

juaarias
25-09-2011, 23:01:27
estoy intentado agragar a un case que si el itemIndex esta entre a y d, decir por ejemplo categoria UNO,no me doy cuenta como hacerlo ayuda plis jej
Código:
case cmbNivel.itemindex of a y d:lblNivel.caption:='Uno'; .
.
end;

ecfisa
25-09-2011, 23:15:45
Hola juarias.

Te pongo un ejemplo con un RadioGroup:

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0..1: ShowMessage('0 a 1');
2..3: ShowMessage('2 a 3');
4..5: ShowMessage('4 a 5');
end;
end;


Saludos.

juaarias
17-10-2011, 22:32:54
hola gente queria consultarles sobre donde esta el error en el siguiente codigo:
//calculo estadia
case cmbCantidad.ItemIndex of
(0):begin
case a of
(a<7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*750);
(a=7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*4900);
(a=15):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*8000);
end;

(1):begin
case a of
(a<7):(frmFactura.stgFactura.Cells[2,0]:= inttostr(a*750));
(a=7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*4900);
(a=15):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*8000);
end;
(2):begin
case a of
(a<7):(frmFactura.stgFactura.Cells[2,0]:= inttostr(a*750));
(a=7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*4900);
(a=15):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*8000);
end;
end;
end;
end;
end;

oscarac
17-10-2011, 22:36:25
te muestra algun tipo de error?
cual es?

ah y que pasa si a es igual a 8 o 9 o menos de 15?

Casimiro Notevi
17-10-2011, 22:39:26
Pues dinos el error que sale, se nos ha averiado la bola de cristal USB ;)

juaarias
17-10-2011, 22:49:57
jjaja perdonen,jajajaj,lo de si es otro valor no hay drama se lo controlares el error que me sales;

E2026 Constant expression expected

Casimiro Notevi
17-10-2011, 22:55:05
No dices en qué linea, pero juraría que es por los paréntesis que has puesto en los case:
(0):
(1):
etc.

Quita esos paréntesis.

juaarias
17-10-2011, 22:56:03
case cmbCantidad.ItemIndex of
(0):begin
case a of
(a<7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*750); //me señala desde aca paa abajo
(a=7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*4900);
(a=15):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*8000);
end;

(1):begin
case a of
(a<7)frmFactura.stgFactura.Cells[2,0]:= inttostr(a*750));
(a=7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*4900);
(a=15):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*8000);
end;
(2):begin
case a of
(a<7)frmFactura.stgFactura.Cells[2,0]:= inttostr(a*750));
(a=7):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*4900);
(a=15):frmFactura.stgFactura.Cells[2,0]:= inttostr(a*8000);
end;
end;
end;
end;
end;

Casimiro Notevi
17-10-2011, 22:56:46
También es porque en los case anidados no has puesto constantes en los valores:
(a<7)frmFactura.stgFactura.Cells[2,0]:= inttostr(a*750));

Eso no vale, debes poner valores constantes. También te faltarían los dos puntos ':'

juaarias
17-10-2011, 23:42:41
valores constantes???

juaarias
17-10-2011, 23:47:48
me especificas un poquito que no me doy cuenta?

Casimiro Notevi
18-10-2011, 00:04:18
Resumiendo, no puedes poner como condición del case (a<7), tienes que poner 1, 2, 3, etc.
Además has puesto case dentro de case, sin su end, aunque esa parte no sé si lo has hecho así realmente o es una equivocación, porque veo que los cierras al final, los end.

juaarias
18-10-2011, 00:19:29
graciasssss por dios que tonto soy, para saber si es menor que 7, debo utilizar 1..6,muchas gracias por su tiempo espero poder algun dia ayudar como uds hacen conmigo genios¡¡¡¡