Documentos de Académico
Documentos de Profesional
Documentos de Cultura
end;
Recuerde que es lo que dice este procedimiento y donde se debe escribir el código. Ahora
viene la parte en que debemos preguntarnos que queremos que suceda cuando el mouse se
mueva sobre el boton1. Si lee el enunciado del ejercicio veremos que debe agregar el texto
que aparecerá en el edit al memo, debe hacerlo visible y además como ha sido agregado un
elemento al memo debemos habilitar el botón de limpiar. Entonces el código quedaría:
2
Nota : Las dos barras indican que lo que escribas después de ellas la maquina no lo
tendrá en cuenta o sea es solo para guiarte y saber lo que estas haciendo.
Corra el programa y pase rápido el mouse sobre el botón agregar y vera que ya realiza la
tarea. Pero hay algo trabajoso y es que cada vez que desees entrar un nuevo dato tienes que
marcar con el mouse el edit y borrar lo que tiene escrito. La forma de solucionar este
problema ya la vimos anteriormente y es agregando estas dos líneas en el mismo
procedimiento o sea entre el mismo begin - end:
edit1.Clear; //para limpiar el edit
edit1.setfocus; //para poner el foco en el edit1
Ahora corra el programa y verá que bien realizado esta este evento.
Nota: Pruebe a quitar la línea de añadir textos al memo y tratar de asignárselos por
otra propiedad de modificar textos del memo (text) de la siguiente forma:
Memo1.text := edit1.text //para asignarle el texto del edit1 al memo
Córralo y verá que al pasar el mouse asignará al memo lo que esta escrito en el edit1
pero cuando entre otro valor al edit1 y pase sobre el boton1 vera que borrara el valor
anterior del memo y pondrá este último.
3.2 – El segundo evento que tenemos es cuando le demos un click al botón limpiar. Lo que
deseamos que suceda cuando le demos click al botón es que todo lo que esta escrito en el
memo sea borrado. Para ello pongamos esta linea.
Memo1.clear; //para borrar todo lo escrito en el memo
Tambien debemos poner en el label2 un mensaje que indique que la tarea ha sido
realizada, para esto pongamos la siguiente linea:
Label2.caption := ‘LOS ELEMENTOS HAN SIDO BORRADOS’
También en lugar de la línea para limpiar el memo podías haber puesto:
Observe que cuando limpia el cursor no se pone en el edit1 lo cual seria mas cómodo para
Memo 1.text := ‘’; // le asigno el valor ‘’o sea nada al memo para que se borre
. todo lo que tiene escrito
el usuario al que vaya dedicado este programa. Pongámoslo entonces agregando la
siguiente línea:
Si relee el ejercicio verá que el texto debe ser borrado al volver a entrar otro elemento o
sea cuando el mouse se mueva sobre el boton1, asi que al evento anterior tenemos que
añadirle:
Ahora corra el programa y verá el fruto de su estudio.
Este componente permite la creación de un menú que aparecerá en la barra del menú de la
ventana.
Items – Permite crear la lista de opciones del menú. Coloca uno de estos componentes en el
formulario y vez a su propiedad items y haz click sobre la elipsis(---). Aparecerá un
segundo panel, el de edición y diseño del menú (Observa que este panel de diseño aparece
también si das doble click en sobre el componente).
Observa también como se pueden mover los apartados creados, arrastrándoles con el ratón.
Si deseas crear submenús debes pararte sobre la opción a la que deseas crear el submenú y
oprimir click derecho y se mostrará una lista de opciones, de ellas debes escoger la opción
create submenu(ctrl + right). Fíjese en la combinación de teclas que realizan esta misma
operación.
4
fig2.13
Caption: Ver
Enabled: Ver
Visible: Ver
Este popupmenu permite imitar los menús que se visualizan en la mayoría de las ventanas
de window al dar click derecho sobre ellas(por ejemplo esta misma).
Veamos ahora un ejemplo.
1- Cree un popupmenu.
2- Coloque un componente en el formulario, ve a su propiedad popupmenu y despliega la
lista que aparece en su valor y escoja popupmenu1(si hubiese mas de uno le mostraría
5
los que hubiese y debías escoger el que tu quisieras que visualizara al dar click derecho
sobre este objeto).
3- Corre el programa y has click derecho sobre el componente que le asignaste el menú
contextual y verá el resultado de su estudio.
4- Ya tenemos creado todo para dar los colores al formulario. >>Ahora vamos a hacer que
inicialmente los colores rojo y azul y estén invisibles. Para esto marque el mainmenu y
vaya a su propiedad items y damos click en la elipsis(podíamos haber dado doble click
sobre el mainmenu). Al realizar esta operación se visulizara nuevamente la ventana
para agregar opciones. En ella seleccione la opción rojo, va a su propiedad visible y le
da el valor false, o sea que no se vea al iniciar el programa. Corra ahora el programa y
verá que solo se ve en el menú color la opción verde.
5- Queríamos que estas dos opciones se hicieran visibles al dar click sobre un boton. Para
esto coloquemos un boton en el formulario. Marquemoslo y vayamos a su evento
onclick, en él progarmemos:
Este componente nos ofrece un ListBox(caja de lista) estándar de Windows, que nos
permite representar una lista de opciones al usuario, para que elija una (o varias si la
propiedad "MultiSelect" está a True). Sus propiedades particulares son:
Items: Esta propiedad permite añadir textos al listbox. Al pulsar sobre esta propiedad,
aparece el panel de la próxima página, donde se pueden escribir los textos disponibles para
el usuario(fig2.14). También se puede modificar esta matriz de textos durante la ejecución
de la aplicación, añadiendo o eliminando elementos dinámicamente.
fig2.14
2.2.8- TComboBox. (visual)
Un combobox es un listbox pero con la ventaja de tener un campo de edición, o sea se
puede escribir en él. Además la lista del combobox es desplegable mientras que la del
listbox no lo es.
4 - CsOwnerDrawFixed,
CsOwnerDrawVariable Estas dos posibilidades se usan para listas con imágenes de
tipo bitmap. En el primero, la altura de cada elemento es fija,
mientras en el segundo, la altura depende de cada imagen.
Este control nos permite decorar nuestro proyecto ya que permite agrupar componentes
dentro de si e independizarlos de los demás. Sus principales propiedades son:
10
Caption: Permite modificar el titulo del groupbox. Este titulo aparece en su parte superior.
fig2.15
Align: Esta propiedad nos permite alinear el componente. La mayoría de los componentes
tienen esta propiedad pero es poco utilizada en ellos y por eso no se les mostró en los
demás componentes, de todos modos el funcionamiento con los demás es muy parecido.
Esta propiedad toma los siguientes valores.
1- AlTop: Este valor hace que el panel se ajuste a la parte superior del formulario por
debajo del menu principal si tiene creado alguno(vea la barra de botones fig2.15).
2- AlBotton: Hace que el panel se ajuste a la parte inferior de la ventana.
3- AlClient: Hace que el panel tome el mismo tamaño del formulario.
4- AlCustom: Hace que el panel se ajuste a la parte superior e izquierda del formulario.
5- AlLeft: Hace que el panel se ajuste a la parte izquierda del formulario.
6- Alright: Ajusta el panel a la derecha del formulario.
11
7- AlNone: Es la que toma inicialmente con al cual puede hacer con el panel lo que
deseee.
También tiene algunas propiedades que pueden hacer cambiar la vista del panel las cuales
les enumerare brevemente(observe panel bonito figura 2.15).
Bevellnner, BevelOuter, BevelWidth: Estas propiedades permiten biselar los bordes ya
sea hacia dentro o hacia fuera y con la propiedad bevelwidth le dan el valor del tamaño ue
desean que tenga.
Este componente de tipo lógico permite al usuario seleccionar o desestimar una opción.
Caption: Permite modificar el texto que aparecerá al lado del cuadrado del checkbox.
State: Significa estado. Nos permite o asignar el estado que estado del checkbox. Es
parecida al checked pero tiene un poco más. Sus opciones son:
CbChecked: Selecciona el checkbox.
CbGrayed: Significa ponerse gris. Pone el checkbox en un estado en que no está activado
ni desactivado, aunque responde a desactivado.
CbUnchecked: Hace que el estado del checkbox sea no chequeado.
Estas dos últimas propiedades son mutuamente interactivas; pues modificas una, y la otra
se modifica.
Checked: Permite hacer que el radiobutton sea marcado o no, ademas de permitirnos saber
si está marcado o no.
Columns: Permite darle el valor correspondiente a la cantidad de columnas que desea tenga
el radiogroup.
Itemindex: Permite seleccionar uno de los botones del radiogroup. Recordar que
itemindex te devuelve la posición en la que se encuentra el articulo seleccionado. Index
significa indice.
Items: Significa artículo. Permite añadir artículos al radiogroup. Cada articulo se mostrara
al editarlo como un radiobutton.
Visible y enabled : Lo mismo que en todos los anteriores.
1- Los datos deben ser guardados al dar click sobre el botón, o sea todo va a suceder en el
evento OnClick del botón. Entonces seleccione el botón, vaya a su evento OnClick y
vamos a ir escribiendo el código que iremos viendo.
2- Lo primero que guardaremos al hacer click sobre el botón será el nombre entrado en el
edit1, o sea debemos escribir el siguiente código.
Listbox1.items.add(edit1.text);//añade el edit1 al listbox1
3- Ahora los listbox 2,3,4 que son los encargados de almacenar los datos de la primera
organización. Los datos que entraremos serán true si esta seleccionada la opción o false
en caso contrario. Estos datos también deben ser almacenados al hacer click sobre el
boton1 así que se tienen que programar en el mismo evento OnClick del botón.
Recuerden que es un listbox para cada dato de este grupo. Como son checkbox para
saber si esta seleccionado o no cada checkbox vamos a usar algo que veremos mas
adelante en Object Pascal que son las sentencias condicionales. Lo que vamos a hacer
es usarla para saber si el checkbox esta marcado o no. Entonces el código quedaría de la
siguiente forma:
If Checkbox1.checked=true then listbox2.items.add(‘true’) else
Listbox2.items.add(‘false’)
Lo que está diciendo es que si el checkbox1 está marcado al listbox1 le añada un articulo
que dice true(verdadero) sino(else) que le añada un articulo que diga false(falso). Lo mismo
hay que hacer con los otros dos.
If Checkbox2.checked=true then listbox3.items.add(‘true’) else
Listbox3.items.add(‘false’)
If Checkbox3.checked=true then listbox4.items.add(‘true’) else
Listbox4.items.add(‘false’)
Esto también se puede realizar mucho más sencillo pero recuerde el objetivo hasta ahora
cual es.
4- Aun falta entrar el dato de la organización del segundo grupo a la que pertenece. Para
esto también usemos las sentencias condicionales para saber cual articulo del
radiogroup esta seleccionado. Vamos a utilizar la condición (if) aunque mas adelante
veremos que para el radiogroup el case es mucho mas sencillo. Entonces tendríamos
que añadir el siguiente código:
If radiogroup1.itemindex=0 then listbox5.items.add(OPJM)
If radiogroup1.itemindex=1 then listbox5.items.add(FEEM)
If radiogroup1.itemindex=2 then listbox5.items.add(FEU)
5- Ahora también podemos, para facilitarle el trabajo al usuario añadir las siguientes
líneas.
Edit1.clear;//limpia el edit1
Edit1.setfocus;//pone el cursor en el edit1.
6- Ahora corra el programa para que vea lo que ha logrado.
14
Ya hasta aquí tiene suficientes conocimientos sobre los componentes como para poder
explicarles claramente el Object Pascal.