![]() |
Modificar Propiedades de un FORM
Quiero cambiar la propiedad WindowState de un FORM en tiempo de ejecución.
En la definición el FORM esta creada la propiedad como NORMAL, pero dependiendo del usuario que ejecuta la aplicación quiero poner MAXIMIZE. Sabe alguien como conseguir esto. Como siempre digo con comandos del PowerCobol. Gracias. Un Saludo. |
Hola Amigo Aquí Un Ejemplo
Código COBOL:
Puedes reemplazar POW-SELF por el nombre del form Busca las otras opciones en el Help. Saludos |
Cita:
Código COBOL:
Cuando ejecuto el programa me aparece el mensaje: Illegal function call. |
Dos cosas:
- ¿ Has probado con POW-SELF en vez de FR-PEDVENT ? - ¿ Qué versión de PWC estás usando ? Yo uso mucho la instrucción "ShowForm", (sobre todo cuando abro un form de consulta con un listView, porque si no la uso, hasta que no ha terminado de cargar todo el listview no muestra el formulario), y no me da ningún problema. Un saludo.- |
El "FR-PEDVENT" va entre comillas
Saludos PERDON NO VA ENTRE COMILLAS, lo acabo de probar con el nimbe directamente y funciona debe ser otro el problema Saludos |
Recato33
Verifica no "style" se está com a opção de "variable". Se estiver "Fixed" ou "fixedtool" não podes maximizar. Normalmente é esse a causa do erro. Un saludo, Rui Pinto |
Josber, para que te muestre el formulario, debes usar la instruccion ThruEvents. EN los bucles lo mismo.
En cuanto al problema descrito por Recato53, estoy de acuerdo con Rui, ese debe ser el problema. Tambien aconsejo usar siempre POW-SELF, porque es un pointer al Form actual, y asi el codigo te vale en Forms diferentes y no hay que cambiar nada. Es decir, ¡MI-FORM y POW-SELF equivalen en cualquier Form! |
Cita:
Un saludo.- |
Cita:
BorderStyle = 0, Variable MaxButton= Activo Con esta configuración funciona correctamente. ¿Se pueden cambiar estas propiedades una vez maximizada el FORM?. Muchas gracias. |
Cita:
Josber, si cargas directamente en "Opened", no te lo va a mostrar nunca. El truco en este caso es meter un CmTimer. En modo diseño, le quetas el "Active" al Timer y le pones medio segundo (500) o 1 segundo (1000). En "Opened" del Form, haces lo que haya que hacer (sin la parte de la carga del ListView), y la última línea debe ser: Código COBOL:
Y en el evento "Timer" del CmTimer1 metes: Código COBOL:
|
Kuk,
Não sei se já alguma vez, contaste o tempo que demora a mais a carregar uma Listview, fazendo o THRUEVENTS em todas as linhas!!! Chega a demorar 3 ou 4 vezes mais. Já tive casos de 10x mais (1 minuto para 10 minutos). Eu uso um contador, e faço o thruevents de x em x linhas, por exemplo 30 ou 50. Alem disso temos que ter cuidado, pois o THRUEVENTS (no Visual Basic - DoEvents) executa tudo o que estiver pendente para processar. Assim se entretanto o operador carregou num botão da form o programa vai executar o click do botão e pode estragar o carregamento. Imagina que por exemplo o botão tem um Clear da LISTVIEW!!! Ou que o operador fecha a form em cima no X vermelho!!!! Saludos, Rui Pinto |
Rapinto, llevas razón. Si son muchos los datos a cargar, el ThruEvents hay que hacerlo cada x registros. O también, se puede hacer carga de X registros y el resto a petición (un Boton con texto "Cargar más..." o algo así.
Pero en cuando al segudno problema que dices, es teoricamente posible, pero en un CallForm, si además hacemos: Código COBOL:
No habrá posibilidad de hacer click ni nada, porque el Form esta bloqueado. Asi evitamos problemas ;) |
| La franja horaria es GMT +2. Ahora son las 08:28. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.