Escolar Documentos
Profissional Documentos
Cultura Documentos
En esta tercera y última parte voy a finalizar con los controles disponibles en Windows 95 y,
como ya se recordó en la entrega anterior, sólo están disponibles en las versiones de Delphi a
partir de la 2.0 en adelante.
Los distintos controles a abordar en esta entrega serán los que se ven a continuación.
Cabecera de control
Barra de estado
Spinner (UpDown)
Cabeceras de control
Son identificadores que suelen encontrarse en la parte superior de la ventana (la alineación por
defecto, respecto de la ventana , es de AlTop) y que responden a la pulsación efectuada sobre
ellos. En realidad, yo las concibo como un invento cómodo de agrupar los PushButton y darles
un aspecto diferente al que estamos acostumbrados, pues se trata de controles que no llegan a
la organización que nos puede dar las estructuras en forma de lista, ni la funcionalidad de las
carpetas (pestañas).
En cualquier caso, se gestionan, como ya he dicho, con la misma lógica que los PushButton, de
ahí que no vaya a hacer mucho hincapié en su manipulación, limitándome a contar las
diferencias que existen entre uno y otro.
Para la definición de las distintas secciones se utiliza la ventana destinada a tal fin, y que se
puede ver en la figura 2.
1
Algoritmo. La revista para el programador de sistemas de bases de datos. http://www.eidos.es - © Grupo EIDOS
Figura 2: Definición de las secciones de un THeaderControl
Valor Descripción
taLeftJustify Alineación a la izquierda
taCenter centrado
taRightJustify Alineación a la derecha
Tabla 1: Tipo de justificaciones disponibles.
- Style Tipo de contenido que va a tener la cabecera de control. Puede ser un texto sin
más (entonces se fija el valor de Style a hsText, que es el valor por defecto), o
puede contener cabeceras de control anidadas (en cuyo caso habría que fijar el
valor a hsOwnerDraw).
- AllowClick Permite o no que las distintas secciones de la cabecera de control respondan, o
no, cuando se hace clic sobre ellas.
Como ocurriera con los PushButton, se puede especificar qué procedimiento invocar cuando se
produzca el evento OnClick. En el fuente 1 de más abajo se implementa una sencilla línea de
código cuyo único cometido es hacer aparecer una ventana informando del hecho de que una
de las secciones ha sido pulsada.
2
Algoritmo. La revista para el programador de sistemas de bases de datos. http://www.eidos.es - © Grupo EIDOS
// --- Fuente 1 ---------------------------------------------------------
procedure TDlgFiesta.HacerClicEnSeccion( HeaderControl: THeaderControl;
Section: THeaderSection );
begin
MessageDlg( 'Estoy aquí, en ' + Section.Text, mtConfirmation,
mbYesNoCancel , 0);
end;
Lo único a resaltar, por resaltar algo, es que se accede a la propiedad Text de la variable
Section, que es pasada automáticamente al procedimiento cuando se realiza un clic en alguna
de las secciones. Al ser Section una variable de la clase THeaderSection, podemos consultar o
modificar cualquiera de sus datos accesibles, y Text es el que interesa, para conocer el literal
sobre el cual se pinchó.
Barra de estado
Las habituales barras de control de Windows fueron sustituidas por las más completas de
Windows 95, en las que, además de disponer de un control más específico del
redimensionamiento de la ventana, lo cual es accesorio, se dispone de un lugar en el que poder
informar de la cuestión que se desee. La asociación de esta zona a la ventana hace que
cualquier suceso se pueda ver allí reflejado, independientemente del tipo de ventana que se
esté manipulando y sin necesidad de mostrar una ventana adicional.
En la figura 3 se ofrece un aspecto tan completo como poco estético de lo que se puede
mostrar en una barra de estado con formato Windows 95.
Si en las cabeceras de control el tipo de alineación por defecto era en la parte superior de la
ventana, en las barras de estado es en el lado opuesto, es decir, la variable encargada de la
alineación respecto a la ventana toma un valor de AlBottom.
3
Algoritmo. La revista para el programador de sistemas de bases de datos. http://www.eidos.es - © Grupo EIDOS
Tipo de barra sencilla
Son las más habituales, pues dan una información genérica no agrupable. Para especificarla
hay que jugar con dos datos: SimplePanel, que deberá tener un valor verdadero, y SimpleText,
donde se indicará el literal a mostrar (accesible, lógicamente, en tiempo de ejecución). Esto
hace que obtengamos la barra de estado de la figura 3 que lleva por leyenda "Texto sencillo".
En la figura 3 se distingue la existencia de tres secciones, cada una de ellas alineada respecto
al habitáculo que la contiene, con un tamaño predeterminado y mostrando un aspecto realzado,
hundido o plano según criterios seguidos en la fase de diseño. Este diseño se realiza en una
ventana casi idéntica a la que se ha mostrado en la figura 2, en la que el único elemento
novedoso sería es aspecto realzado, etc. al que hacía referencia. Este dato se encuentra
tipificado en la Variable Bevel, y los valores posibles se dan en la tabla 2.
Valor Descripción
pbNone Sin realzado, aspecto plano
pbLowered Hundido
pbRaised Realzado, sobresaliendo
Tabla 2: Tipo de realzados disponibles.
Otros datos de interés son las propiedades SizeGrip (para mostrar o no el triángulo de la
esquina inferior derecha donde se redimensiona la ventana) y Hints (para poner etiquetas
explicativas de lo que la barra de estado hace). Esta última propiedad ya había sido comentada
en entregas anteriores, y ya se explicó que siempre iba asociada a la propiedad ShowHints que
permite o no mostrar dichas etiquetas, pero aquí, como estamos tratando un control
íntimamente ligado a la ventana, la propiedad ShowHints que hay que manipular es la de la
ventana, no la del control (pues éste no la posee)
Spinner
Los spinner son contadores que, normalmente, van asociados a controles de edición de tipo
numérico, en los que al pinchar la flecha arriba el valor se incrementa, decrementándose al
pinchar la flecha abajo (o las teclas de navegación). Digo que, normalmente, los spinner van
asociados a controles de edición de tipo numérico, pero en realidad se pueden asociar a
cualquier control existente en la ventana.
4
Algoritmo. La revista para el programador de sistemas de bases de datos. http://www.eidos.es - © Grupo EIDOS
- ArrowKey Permitir el uso de la flecha arriba y flecha abajo para simular la pulsación del
ratón sobre el spinner (será efectivo cuando el control de edición tenga el foco)
o para usarlas como teclas de navegación por el control de edición. El valor por
defecto es true.
- Max/Min Valores máximos y mínimos alcazables.
- Wrap Hace que la lista sea circular, es decir, que si se está pulsando la flecha arriba y
se intenta sobrepasar el tope máximo fijado, cuando Wrap esté a false
permanecerá en dicho máximo, pero cuando esté a true seguirá aumentando
desde el mínimo fijado hacia arriba. Una lógica similar hay que aplicar cuando
lo que se está haciendo es pulsar la flecha abajo en vez de la flecha arriba.
Teclas activas
Este control es autoexplicativo, pues se trata de la posibilidad que tenemos de activar, o mejor
dicho, asociar a una pulsación de tecla una cierta operativa.
Propiedades
- AutoSize Permite que el tamaño del control se adapte al contenido, el cual será la tecla
asociada a dicho control, por ejemplo Alt-F12. No es lo mismo ubicar F12 en el
control que Ctrl-Alt-W.
- BorderStyle Tipo de enmarcado que llevará el control. Puede llevar un marco sencillo (valor
bsSimple) o no llevar ninguno (bsNone), son las dos únicas alternativas.
- HotKey Tecla que se asociará al control. Si pinchamos sobre el ComboBox asociado a
esta propiedad en el inspector de objetos, aparecerá la relación de las teclas
que se permite utilizar.
- InvalidKeys Relación de las teclas no permitidas. La relación de teclas válidas se ve filtrada
por los modificadores que elijamos en esta propiedad, los cuales se encuentran
representados en la tabla 3.
Valor Descripción
hcNone Todas las combinaciones de teclas son válidas.
hcShift La tecla Shift no está permitida en la definición de la tecla.
hcCtrl La tecla Ctrl no está permitida en la definición de la tecla.
hcAlt La tecla Alt no está permitida en la definición de la tecla.
hcShiftCtrl La combinación de teclas Shift+Ctrl no está permitida en la
definición de la tecla.
hcShiftAlt La combinación de teclas Shift+Alt no está permitida en la
definición de la tecla.
hcCtrlAlt La combinación de teclas Ctrl+Alt no está permitida en la
definición de la tecla.
hcShiftCtrlAlt La combinación de teclas Shift+Ctrl+Alt no está permitida en la
definición de la tecla.
5
Algoritmo. La revista para el programador de sistemas de bases de datos. http://www.eidos.es - © Grupo EIDOS
// --- Fuente 2 ---------------------------------------------------------
procedure TDlgFiesta.QueHago(Sender: TObject);
begin
Close;
end;
Bueno, aquí termino con este complicadísimo código, dejando el comentario de los controles de
edición para formatos RTF (Rich Text Format -Texto enriquecido como lo traducen en Windows
95) para que el lector lo compare con el de controles de edición multilínea, pues son idénticos
en su estructura (heredan de una clase común), aunque el contenido del primero es, si se me
permite, mucho más rico que el del segundo. Un saludo.
6
Algoritmo. La revista para el programador de sistemas de bases de datos. http://www.eidos.es - © Grupo EIDOS