Entender una sentencia
hola, bueno mi consulta la siguiente. en un ejemplo que me dio el maestro dec, tengo la siguiente sentencia:
Pncontroles es un Tpanel Pnvideo es un Tpanel procedure TfrmPrincipal.pnVideoMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin pnControles.Visible := Y = pnVideo.Height -1; // esta sentencia No la entiendo end; No la entiendo porque, Pense que Pncontroles.visible aceptaba solamente TRUE O FALSE, despues se me complica mas cuando sigue la sentencia Y = pnVideo.Height -1; bueno como veran son novato todavia en esto asi que espero sepan entenderme. desde ya muchas gracias |
Hola,
Como tú dices la propiedad "Visible" es o "true" o "false" y no hay más ;) Lo que sucede es que el resultado de evaluar la expresión: ... termina en "true" o "false". Esto es, el componente será visible si el resultado de evaluar esa expresión es "true", y no lo será en caso contrario. Dicho de otro modo, ¿Es la variable "Y" igual a la propiedad "Height" menos uno? ¿Sí? De acuerdo, entonces "Visible" será "true" ;) ¿No lo es? Pues nada de mostrar el componente, no faltaba más ;) Quiere decirse que puedes controlar el estado de la propiedad "Visible" (y todas las propiedades o variables Booleanas, en fin) mediante la evaluación de expresiones, mediante el resultado de funciones, en fin, no solamente con un "true" o "false", o, por mejor decir, obteniendo el correspondiente "true" o "false" de "algo" que lo indique, sea una expresión a evaluar, sea el resultado de una función, etc. Tal vez quedaría más claro haciendo uso de paréntesis. Supongamos esta instrucción: ¿Será visible el formulario "FormPrincipal"? Sí lo será, siempre que su propiedad "Height" valga 500; en cualquier otro caso el formulario no será visible. |
Encerrarlo entre parentesis sería mas claro para que evites confusiones:
Código:
pnControles.Visible := (Y = pnVideo.Height -1); ;) Saludos! |
jaja dec! escribi justo eso y veo que nos cruzamos,, te me adelantaste editando tu post ;)
Saludos! |
Consulta aclarada
Nuevamente Muchas Gracias DEC y Tambien kanvictor; de verdad que pensaba que era algo asi; pero tenias mi dudas. Con mi aprendizaje adquirido que es muy escaso lo ubiera echo asi. jejejejeeee
if Y = pnvideo.Height - 1 then pn controles.Visibles := true; Cada ves que aprendo algo nuevo, me doy cuenta que no se nada. Gracias por aclararme la duda, y sobre todo a DEC. gracias. |
Hola,
Cita:
Cita:
|
La franja horaria es GMT +2. Ahora son las 06:41:16. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi