Buen camino a todos. Con esta entrada, damos por finalizado el primer bloque de la serie, que contiene actualmente, tres entradas mas la inicial, que nos sirvió de introducción. Este primer bloque nos ha llevado a construir un componente muy sencillo, que representa un reloj analógico y que bien podríamos usar de forma independiente, o... Leer más →
Crea tu propia calculadora con Delphi (Parte III)
Buen camino amigo mío. 😀 Tercer día. Finalizando los últimos retoques de la entrada, pero ya me pesa la falta de tiempo para prepararla como a mi me gusta. Estamos celebrando nuestro #DelphiWeek, un poco ajenos a lo que pasa fuera de esta diminuta ventana. Capturar las imágenes. Pensar en el hilo argumental de la entrada. Tenerlo todo... Leer más →
Crea tu propia calculadora con Delphi (Parte I)
¡Buen camino amigo mío! Creo que ya te comenté que íbamos a compartir una serie un tanto especial. 😉 Y lo prometido es deuda. Es mas, estos días pasados los he dedicado a otros afanes y deberes, con la sana intención de tener algo mas de tiempo libre para el blog, y que podamos iniciarla precisamente en... Leer más →
¡Dar una buena imagen! Parte 2
Si os parece bien, recapitulamos: Comentaba al finalizar la entrada anterior, ¡Dar una buena imagen! Parte 1, que estábamos en condiciones de proseguir, toda vez que habíamos generado una base de datos y almacenado algunas imágenes en ella, que era uno de los requisitos que podía demandar el hecho de habernos planteado "devolver una imagen a través de nuestro servidor de DataSnap".... Leer más →
Leído en el día de hoy y muy positivo. Comparte tus descubrimientos con la comunidad XE3 Si eres desarrollador Delphi, C++Builder o HTML5 Builder y quieres compartir trucos, código o soluciones interesantes que has descubierto, no dudes en comentárnoslo, estaremos encantados de compartir tus conocimientos con el resto de la comunidad de usuarios. Por parte de... Leer más →
¡Dar una buena imagen! Parte I
Hace unas semanas, compartía con uno de los compañeros de la Comunidad su inquietud hacia una de las entradas que se publicó al final del año anterior. Concretamente este compañero me hablaba de la entrada del Seminario de Valencia, en cuyo interior se incluían algún retazo del código que se vio en aquella sesión. Según me comentaba, el intento de obtener una... Leer más →
Otras mandangas…
Dicen diversos diccionarios acreditados que una mandanga, en sentido familiar, es algo así como una excusa, como en "no me vengas con mandangas y ponte a trabajar...". También puede ser un cuento, chisme o tontería, como "¡oye! ¡siempre sales con mandangas!. Incluso, alguna vez la escuché en un sentido figurado, de persona con ganas de pleito y barullo, como en "¡Mira... Leer más →
La web de JM
Quisiera compartir con vosotros lo que me parece una buena noticia para nuestra comunidad y se que algunos compañeros se van a alegrar. Y es que, tras cruzar unos correos con mi amigo Jose Manuel Navarro, me ha permitido reactivar su blog dentro de mi servidor, de forma que pueda ser accesible de nuevo. 🙂 Así que... Leer más →
TPanelMiniaturas (primera versión v1.1110)
Para los programadores que trabajamos habitualmente solos, y ese ha sido mi caso durante algunos años, resulta verdaderamente agradable iniciar cualquiera de las actividades o colaboraciones que te permiten salirte del rutinario aislamiento o soledad. Es complicado no poder compartir con otras personas algunas inquietudes del día a día, por decir algo, o que las cosas haya que hacerlas de determinada forma y no de otra, porque realmente muchos de los que te rodean ignoran lo que haces, y ni siquiera lo comprenden, y te ven como el individuo que está encerrado en una habitación con varios servidores, como si uno fuera un domador y se encerrara en la función diaria con sus fieras. 🙂
Panel de miniaturas
Hace unos días, leía con interés una de las entradas de Neftalí. Como siempre, su lectura resulta útil, y creo que eso es algo que compartiréis. 🙂 En esa entrada, cuyo enlace incluyo mas abajo, se dejaban unas lineas de código que crean un ejemplo de visor de imágenes, con un control a través de las miniaturas creadas. Son de ese tipo de código que suele nacer a raíz de una pregunta en un foro y que luego, tras resolverla y discutir sobre ella, mueve nuestra curiosidad y nuestro ánimo a retocarlo para compartirlo con otros compañeros en un blog.
Módulo de control de presencia
Vamos a ponernos un poco las pilas ahora que ya han terminado las vacaciones. ¡Volvemos a lo nuestro!, a este breve tiempo que compartimos y que nos mantiene en contacto. Y como hacía ya bastante tiempo que no subía unas lineas de codigo, hoy casualmente, rebuscando en las carpetas perdidas, he encontrado un pequeño ejemplo que tenía preparado para el blog y que accidentalmente perdí.
TDBLookupComboBox al escenario (Parte I)
Llevaba varias semanas con la idea de hacer un par de comentarios breves sobre el componente TDBLookupComboBox y mira por donde, hoy parece que tengo unos minutos que voy a intentar aprovechar. Así que vamos a ello. Este componente es bastante clásico (no es nuevo). Está ubicado en la paleta "DataControl", la paleta que Borland reservó en sus primeros días para alojar todos los controles de datos y se justifica, en un contexto donde el usuario selecciona un item entre los valores mostrados en una lista ligada a un conjunto de datos, para asignar un valor como resultado de esta selección, en el dataset destino. Así pues, este valor que va a ser asignado, es por regla general distinto del valor que es mostrado al usuario y también siguiendo el mismo razonamiento, formaría parte de un dato significativo de una tabla maestra respecto a su detalle (eso es algo lógico ¿no?).
La gran división…
Suena bien el título... 🙂 y aunque a primera vista, podamos pensar que la entrada va a tratar del paradigma clásico "Divide y venceras", en este caso concreto, la entrada nos vuelve a hablar de un tema recurrente en el blog, como lo es la separación del interfaz del usuario de las reglas de negocio. Como el autor de la entrada nos dice, Cobus Kruger, justo al empezar, en las primeras lineas: One of the most important principles in building complex software systems, is detaching the business logic from the screens that allow users to view and edit information.
Failover Server in DataSnap and Delphi 2010
Recientemente ha editado un pequeño video, Andreano Lanusse, con el título que encabeza la entrada, y en donde se da continuidad a los distintos artículos que ha publicado sobre DataSnap, aunque en este caso no ya referidos a las novedades y primeros pasos, sino al uso de las características o funcionalidades que pueden ser menos conocidas. En este caso concreto, aborda Andreano la parte que afecta a como dar respuesta desde nuestro servicio a los fallos y se puede ver a modo de ejemplo como redireccionar el cliente ante la caída de uno de los servidores).
Simplifica tu código Delphi…
Simplifica tu código, piensa en clases, abstrae y racionaliza, usa el sentido común, etc... son algunos de los lemas que hemos podido compartir durante muchos de los artículos anteriores, casi desde siempre, con mas o menos acierto. Valga la redundancia, casi diría que en realidad, es una preocupación cuasi universal que nos corroe, a medida que avanzamos y aprendemos y nos formamos. También de alguna forma, exteriorizamos esos pensamientos en muchos de los post que acabamos publicando. Nuestro punto de parada hoy, es nuevamente el blog de Stefaan Lessage, y la parada es para compartir cuatro artículos que ha escrito durante el mes de marzo y que pienso que forman parte de esa idea general que siempre hemos intentado plasmar: pensar en clases y abstraer. Pienso que la lectura de las cuatro entradas de Stefaan es muy aconsejable y si bien, puede resultarnos mas o menos incomodo que esté escrita en otro idioma (ese punto ya depende de cada uno), existe el suficiente código para que pueda entenderse el trasfondo y la enseñanza que aporta. Sobretodo, os la aconsejo si os estáis iniciando en el entorno y buscais patrones de razonamiento que os sirvan de referencia en vuestros desarrollos.
Un día con los mayores (5) y Parte B
Lo primero que tenemos que tener en cuenta es que la clase TRejilla, nos debería proveer la funcionalidad básica para manipular los datos de forma sencilla. Eso es lo que siempre se ha buscado. Así que la clave, en este punto puede estar en valernos de Acciones, que podrán ser asignadas en tiempo de diseño durante la etapa de creación de los módulos de trabajo. Es decir, que nuestro trabajo consistiría básicamente en decidir a tenor de cada uno de ellos, cuales acciones van a quedar disponibles, en la etapa de diseño, sin tener que estar reinventando la rueda continuamente. Esta sería mas o menos la mecánica de trabajo para nosotros a este nivel, durante el desarrollo de nuestra aplicación: Creamos un módulo descendiente de la clase TBrowser, añadimos un componente TRejilla en su interior y ¡voila!, asignamos las acciones que vamos a permitir en aquellos elementos del interfaz que las requieran. Si a este punto añadimos que Ian, hacia formar parte del browser una ToolBar que puede ser receptor de las acciones, el trabajo se simplifica aun mas.
Un día con los mayores (5) Parte A
En esta quinta entrada de la serie, tenemos que abordar la clase TRejilla, que como ya comentabamos en las dos entradas previas, iba a servir de enlace entre la rejilla de datos y el formulario de edición (las clases TBrowser y TDialogo).
Un día con los mayores (4)
Vamos a dar otro paso más... En la tercera entrada de esta pequeña serie, nos centrábamos en la clase TAncestro, y pudimos ver como se convertía en la piedra angular del framework de Ian, de la que iba a heredar cualquier tipo de ventana que pudieramos pensar o necesitar. Ian valora en sus ejemplos, dos arquetipos de ventanas diferenciados: el que representa a la clase TBrowser y el que representa a la clase TDialogo. Es su idea, dicho sea de paso, muy razonable, de acuerdo a su experiencia como experto y en ese intento de simplificar. Quizás en vuestro caso, mientras leéis estas lineas imaginéis otros contextos que hagan necesaria la creación de otros descendientes, de acuerdo a criterios mas selectivos, como por ejemplo pudiera ser la seguridad, donde ciertas ventanas pudieran necesitar un tratamiento especial. Nada es descartable y el framework debería ser una propuesta de trabajo que muchos van a adaptarse de acuerdo a sus necesidades. De hecho, os comento que en mi caso concreto y en lo que respecta a la funcionalidad del Framework, descarté algunas partes que no estaba utilizando, como era la posibilidad de arrastrar registros mediante drag&drop, que Ian sí introduce y pone en práctica. Respecto a las ventanas, al final no me fue necesario crear ningún tipo adicional aunque hubiera momentos en los que sí pude habérmelo planteado.
Comentarios recientes