Recent

Author Topic: Observaciones sobre cosas que no funcionan bien  (Read 5619 times)

jma_sp

  • Full Member
  • ***
  • Posts: 150
  • El conocimiento si ocupa lugar.
Observaciones sobre cosas que no funcionan bien
« on: May 04, 2017, 10:05:10 am »
Buenos días, aquí iré listando cosas que observe que no van bien en el día a día o que crea que se puedan hacer de otra manera, puedan o no ser errores (bugs), más que nada porque en inglés me cuesta expresarme apropiadamente para estas descripciones:

- En un formulario cualquiera, cuando emplazo los componentes, estos muestran las líneas de alineamiento y suele ser habitual que no coincidan en el enrrasado. Lo que hago es que extiendo más el ancho o muevo el componente, lo dejo ahí, luego lo retorno y parece que ya si va el enrrasado, cuando ni con esas o bien procedo a la alineación del bloque de componentes o con el inspector de objetos, pero es algo que sucede desde que uso Lazarus.

- Cuando tenemos un formulario cuyas dimensiones superan las de la pantalla física no hay scroll vertical y horizontal funcionales para seguir el diseño visual sino que la única manera es valerse del inspector de objetos para con left, top, width emplazarlos correctamente.

- Cuando tenemos un formulario en modo diseño y lo dejamos más reducido para tener acceso a otras ventanas y tratamos de desplazar con los scroll en dicho formulario por ejemplo para ubicar uno de los componentes, no hay manera, los scroll se mueven pero retornan a su posición origen sin actuar sobre el contenido del formulario (ocurre con ambos, horizontal y vertical).

- Cuando creamos nuevas formas/unidades y ya compiladas y funcionando queremos por cualquier motivo cambiar el nombre de la unidad o del formulario, dichos cambios no se ven reflejados en el nombre de fichero y nombre de unidad y por tanto al reiniciar Lazarus las excluye de la aplicación. Tampoco cambia las referencias del código fuente.

   Realizando los cambios a mano si funciona pero es laborioso puesto también hay que modificar a mano los ficheros .lpi y .lpr.

- Recientemente haciendo un programilla que utiliza controles data-aware con sqlite estos de repente cambian de color de fondo, se hace la linea de recuadro más gruesa y desaparece el contenido. Todo vuelve a aparecer de nuevo con un form1.refresh y no siempre pasa, otras simplente se queda la imagen detras del formulario superpuesta parcialmente en el formulario.

   En este caso tengo dudas si es un problema de refresco de Lazarus, o de algo externo a el que esté produciéndolo. También tengo que probar si esto sucede cuando estos componentes están dentro de un tpanel o cualquier otro como tpagecontrol en lugar de directamente sobre el formulario.

- Otro programilla simple que contine un treeview sobre un tpanel y unos pocos tbitbtn me genera un error de que no tiene componente padre asociado cuando es tan simple que no debería dar fallos ya que son componentes emplazados directamente sobre el formulario sin complejidades (este error lo genera tanto al compilarlo en la versión previa de Lazarus como la actual).

   El programa suele estar funcionando bien durante bastante rato, se maneja bien el treeview, realizo búsquedas en el treeview....pero de repente da ese error, no es molesto puesto que se abre de nuevo y funciona pero es curioso el error, igualmente no hay mucha profundidad de componentes sobre componentes.


Saludos.




Se que debería ponerlos en el bug tracker pero por el momento los listo aquí, tampoco se suficiente para tratar de corregir los problemas directamente en el código fuente de Lazarus.
« Last Edit: May 04, 2017, 10:47:22 am by jma_sp »
Devuan Beowulf 3.0( JWM/ROX/iDesk) - Puppy Linux,  Haiku OS,.ReactOS 0.4.xx  - FreeDos .

Ñuño_Martínez

  • Hero Member
  • *****
  • Posts: 1186
    • Burdjia
Re: Observaciones sobre cosas que no funcionan bien
« Reply #1 on: May 04, 2017, 01:24:15 pm »
Hola.
- Cuando creamos nuevas formas/unidades y ya compiladas y funcionando queremos por cualquier motivo cambiar el nombre de la unidad o del formulario, dichos cambios no se ven reflejados en el nombre de fichero y nombre de unidad y por tanto al reiniciar Lazarus las excluye de la aplicación. Tampoco cambia las referencias del código fuente.
Esto no es un fallo per sé.

No hay que confundir nombre de unidad con nombre de archivo.  Es evidente que lo ideal es que sean el mismo en ambos casos, pero no tiene por qué así.  Si cambias el nombre de unidad y guardas, no tiene por qué cambiar el nombre del archivo.  De todas formas, si no recuerdo mal (ahora mismo no tengo Lazarus a mano), si cambias el nombre de una unidad y guardas Lazarus pregunta si cambiar el nombre de archivo y viceversa (¿o sólo lo hace la primera vez que guardas?).

Por otro lado, el menú de refactorización creo que incluye la opción de cambiar el nombre de una unidad, y cambia todas las referencias dentro del proyecto y sólo en el código fuente.  Como digo, no tengo Lazarus a mano así que no puedo confirmarlo.  Aun así, sí existe la opción de cambiar un identificador por otro y funciona perfectamente.
« Last Edit: May 04, 2017, 01:26:26 pm by Ñuño_Martínez »
Are you interested in game programming? Join the Pascal Game Development community!
Also visit the Game Development Portal

BlueIcaro

  • Hero Member
  • *****
  • Posts: 791
    • Blog personal
Re: Observaciones sobre cosas que no funcionan bien
« Reply #2 on: May 04, 2017, 03:24:52 pm »
Podrías indicar que versión de lazarus y que sistema operativo usas.
Y los problemas que sean de programación acompañar el código fuente o una parte del mismo.
Sería de ayuda
Saludos

Edson

  • Hero Member
  • *****
  • Posts: 1296
Re: Observaciones sobre cosas que no funcionan bien
« Reply #3 on: May 04, 2017, 05:47:52 pm »
Muchos problemsa en un solo "Post". Mejor divídelo en varios, y como indica @BlueIcaro, da más información sobre la plataforma y aplicativo y adjunta código, si es posible.
Lazarus 2.2.6 - FPC 3.2.2 - x86_64-win64 on Windows 10

jma_sp

  • Full Member
  • ***
  • Posts: 150
  • El conocimiento si ocupa lugar.
Re: Observaciones sobre cosas que no funcionan bien
« Reply #4 on: May 05, 2017, 12:17:50 pm »
Tampoco son tantas cosas, no me impiden que funcionen los programas con lo cual no es tan importante.

   Lo de poner código fuente por el momento no porque tendría que quitar muchas cosas y no es viable.

  De todas formas las 3 primeras son en tiempo de diseño, por tanto supongo que les ocurre a los demás también porque sucece en al menos las 3 últimas versiones estables de Lazarus.

   En el caso del renombrado en el inspector de objetos del formulario lo lógico es que si cambie el nombre de fichero y las referencias en .lpi .lpr y demás aunque no cambiase el nombre de fichero de la unit.

  Lo del TreeView es simplemente eso un TreeView sobre un TPanel nada más, no vamos a reinventar la rueda, básico en cualquier compilador moderno, simplemente sucede de vez en cuando incluso sin usarlo, dejándolo en segundo plano.

   Lo de los dbedit seguro que es tema de algo que he instalado que lo afecta.

Respecto a donde está instalado:

Windows XP Pro 32 bits SP3 y Lazarus 1.6.4 / FPC 3.0.2 Revisión SVN: 54278 con i386-win32-win32/win64

Era por si a alguien también le sucedía, no le deis más importancia, no pongo más.

Devuan Beowulf 3.0( JWM/ROX/iDesk) - Puppy Linux,  Haiku OS,.ReactOS 0.4.xx  - FreeDos .

GAN

  • Sr. Member
  • ****
  • Posts: 370
Re: Observaciones sobre cosas que no funcionan bien
« Reply #5 on: May 05, 2017, 11:12:22 pm »
Hola jma_sp el tema del nombre de las unidades a mí también me sucede y programo sobre Linux, cuando creo una unidad automáticamente la agrega al .lpr con el nombre unit1 luego le cambio el nombre, compilo y salta el error, pero ya me acostumbré para ser sincero y no le doy mucha importancia, pero el error existe, no eres el único.

Para el resto de los temas es necesario un ejemplo pues cuando se reporta un bug te piden un código para reproducir el bug.

Saludos.
Lazarus 2.0.8 FPC 3.0.4 Linux Mint Mate 19.3
Zeos 7̶.̶2̶.̶6̶ 7.1.3a-stable - Sqlite 3.32.3 - LazReport

jmm72

  • Jr. Member
  • **
  • Posts: 79
  • Very experienced in being a beginner...
Re: Observaciones sobre cosas que no funcionan bien
« Reply #6 on: May 07, 2017, 04:07:15 pm »
- En un formulario cualquiera, cuando emplazo los componentes, estos muestran las líneas de alineamiento y suele ser habitual que no coincidan en el enrrasado. Lo que hago es que extiendo más el ancho o muevo el componente, lo dejo ahí, luego lo retorno y parece que ya si va el enrrasado, cuando ni con esas o bien procedo a la alineación del bloque de componentes o con el inspector de objetos, pero es algo que sucede desde que uso Lazarus.

Sí, al parecer el alineado no funciona al crear el objeto la primera vez. Además hay controles que al intentar modificar su tamaño visualmente solo admiten unos tamaños con múltiplos determinados. Cosa que se puede obviar al editar el tamaño manualmente en el inspector de objetos. Eso es cuestión del control. Pero lo primero sí es un bug, o una limitación del editor visual del forms. Seguro que ya está en el bug tracker, pero puedes mirar para seguir el rastro y ver si quizás es una limitación que por el momento es insalvable.


- Cuando tenemos un formulario cuyas dimensiones superan las de la pantalla física no hay scroll vertical y horizontal funcionales para seguir el diseño visual sino que la única manera es valerse del inspector de objetos para con left, top, width emplazarlos correctamente.

- Cuando tenemos un formulario en modo diseño y lo dejamos más reducido para tener acceso a otras ventanas y tratamos de desplazar con los scroll en dicho formulario por ejemplo para ubicar uno de los componentes, no hay manera, los scroll se mueven pero retornan a su posición origen sin actuar sobre el contenido del formulario (ocurre con ambos, horizontal y vertical).

Estos dos merecen un bug en el bug tracker. No te preocupes que si no son bugs, te corregirán amablemente y cerrarán el bug, pero me parece que sí lo son. Recuerda siempre buscar bien a ver si el bug ya está en el tracker.


- Cuando creamos nuevas formas/unidades y ya compiladas y funcionando queremos por cualquier motivo cambiar el nombre de la unidad o del formulario, dichos cambios no se ven reflejados en el nombre de fichero y nombre de unidad y por tanto al reiniciar Lazarus las excluye de la aplicación. Tampoco cambia las referencias del código fuente.

   Realizando los cambios a mano si funciona pero es laborioso puesto también hay que modificar a mano los ficheros .lpi y .lpr.

Si solo cambias el nombre de la unidad, te va a dar errores ya que hay inconsistencias entre el nombre de la unidad, y el nombre del archivo en el que esta se halla. Se puede establecer que FPC busque una unidad A en un fichero B pero es mejor lo siguiente: En el menú de archivo, Guardar como... Guardas con un nuevo nombre. Te pregunta si quieres eliminar el fichero antiguo, y si quieres actualizar todas las referencias en los use de otras unidades/proyecto. Que es exactamente lo que haces a mano.


- Recientemente haciendo un programilla que utiliza controles data-aware con sqlite estos de repente cambian de color de fondo, se hace la linea de recuadro más gruesa y desaparece el contenido. Todo vuelve a aparecer de nuevo con un form1.refresh y no siempre pasa, otras simplente se queda la imagen detras del formulario superpuesta parcialmente en el formulario.

   En este caso tengo dudas si es un problema de refresco de Lazarus, o de algo externo a el que esté produciéndolo. También tengo que probar si esto sucede cuando estos componentes están dentro de un tpanel o cualquier otro como tpagecontrol en lugar de directamente sobre el formulario.

Comprueba que esos controles no sean del tipo que tienes que encargarte tú del pintado. Si son componentes que vienen con Lazarus, hay probabilidades que que haya un pequeño tutorial o ejemplo de uso en la wiki.


- Otro programilla simple que contine un treeview sobre un tpanel y unos pocos tbitbtn me genera un error de que no tiene componente padre asociado cuando es tan simple que no debería dar fallos ya que son componentes emplazados directamente sobre el formulario sin complejidades (este error lo genera tanto al compilarlo en la versión previa de Lazarus como la actual).

   El programa suele estar funcionando bien durante bastante rato, se maneja bien el treeview, realizo búsquedas en el treeview....pero de repente da ese error, no es molesto puesto que se abre de nuevo y funciona pero es curioso el error, igualmente no hay mucha profundidad de componentes sobre componentes.

Sin ver el código y el mensaje de error exacto, no te podemos decir nada. Los componentes básicos como TPanel, TBitBtn y TTreeView se usan tanto que me imagino y espero que los bugs con los usos más comunes hace tiempo que se han corregido. No es por echarte la culpa, pero hay demasiadas probabilidades de que sea algo en tu código. Yo he cometido errores tan sutiles que casi no pueden llamarse así; pero el código solo estaba siendo consistente, era simplemente mi desconocimiento de una particularidad de como se usa un cierto aspecto del control, o un pequeñísimo detalle que he realizado mil veces bien pero esta vez mal, y no me doy cuenta.

Como colofón a todos tus comentarios, aunque Lazarus todavía tiene muchos fallos y se puede mejorar en muchos aspectos, si algunas de las cosas que mencionas no funcionan, hay más probabilidades de que sean un 'estamos en ello' o de que sea algo que no has tenido en cuenta de tu código, que de que sean bugs que no están en el tracker.

En fin, si uno no pregunta, no aprende. Y si uno no se atreve a responder, tampoco sabe si hay algo que necesite reaprender...
Lazarus 1.6.4 + FPC 3.0.2 64bits under Windows 7 64bits
Only as a hobby nowadays
Current proyect release: TBA

 

TinyPortal © 2005-2018