FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Que bien , me gustan, otra opción para evitar dicha asignación es el típico:
Pero ya que estamos en día programadoril (jejeje vaya día), se me ocurre que podríamos crear un IfThen genérico para estos casos.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#2
|
||||
|
||||
Le di un tweet desde que lo vi, Jhonny. Gracias por el aporte.
Si tuviera yo que emplear el mismo código, copio aquí cómo lo escribiría (no lo he compilado, aclaro):
Aunque tomando algo de las capacidades de la próxima y prorrogadamente reconstruida GH Freebrary, probablemente escribiría algo así:
Una variante más nativa y estándar, en caso de que yo trabajara en Embarcadero/Idera y me aceptaran añadir estas cosas, podría ser:
Saludos. Al González. |
#3
|
||||
|
||||
Gracias por compartirlo Al.
Pinta bastante bien la forma como lo has simplificado Una pregunta para Al, ¿ghStopWhen es algún método de algún ayudante de TEnumProcResult?, me gustaría (si es posible) ver el código de ghStopWhen, le he hecho click al enlace que tienes en la firma, con el animo de ver su magia pero me sale una página en blanco.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#4
|
||||
|
||||
La idea es que en efecto lo sea. Es la primera vez que oigo hablar del tipo TEnumProcResult, pero en cuanto tenga que usarlo no dudaré en crearle su extensión, es decir, su ayudante, escribiendo un método como ghStopWhen o algún nombre similar (se aceptan sugerencias de otros posibles identificadores).
En cuanto a la forma de escribir ese método, una manera simple podría ser como en el siguiente código. Uso para este ejemplo el tipo enumerado TEnumControlsResult, el cuál sí está presente en mi versión de Delphi (esto sí lo he probado):
Y ya en estas, considerando que los valores ordinales de System.False, System.True, TEnumControlsResult.Continue, TEnumControlsResult.Discard y TEnumControlsResult.Stop son 0, 1, 0, 1 y 2, respectivamente, una implementación más programadoril, que consume menos ciclos de CPU sería:
Además el método podría ser declarado Inline, aunque en ese caso modificaría un poco su implementación a fin de resolver cierta impericia del compilador (ese tema me gustaría discutirlo en otro hilo):
Cita:
Espero ya pronto subir la nueva GH Freebrary a algún repositorio, y tener la satisfacción de ofrecérselas y recibir productiva retroalimentación. Quizá esta vez sí la uses, Jhonny. Intentaré que sea digna de ello. Última edición por Al González fecha: 27-03-2016 a las 05:21:53. |
#5
|
||||
|
||||
Cita:
Punto #9 Cita:
|
#6
|
||||
|
||||
Y es verdad, Agustín. Al escribir esa parte de mi mensaje anterior, me vino a la mente aquella reflexión de Galli.
Cada cierto tiempo ocurre que ves al que fuiste y lo que hiciste, notando que ambas cosas han mejorado. Algo anda mal en un individuo cuando pasan muchos años sin presentársele este fenómeno de introspección. Y hablando de progreso, veo que vas llegando a una de las vallas. |
#7
|
||||
|
||||
Eso demuestra que 'más sabe el diablo por viejo que por diablo'.
Los jóvenes no se dan cuenta que no saben. Con el tiempo van descubren que no sabían, que ahora sí que saben. Más tarde se vuelven a dar cuenta que tampoco sabían, sino que es ahora cuando saben. Hasta que llegan a 'viejo' y descubren que toda su vida no han sabido nada, que por fin ya saben... Si a eso le añadimos el ser de caracter perfeccionista, provoca que nunca estemos contento con nuestro código, siempre necesita reformas, minimizarlo, incluso rehacerlo... y nunca se acaba, cada vez más perfecto, más eficiente... y así toda la vida |
#8
|
||||
|
||||
Muy bueno, me recuerda mucho a esta pequeña joya creada por David Heffernan que utilizo para Vcl, y me permite escribir este tipo de codigo, utilizando genericos, predicados y acciones:
Saludos Última edición por AgustinOrtu fecha: 26-03-2016 a las 20:45:17. Razón: Los genericos no salen correctamente :( |
#9
|
||||
|
||||
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Crear un TPanel dentro de un TPanel dentro de un TScrollBox | TiammatMX | OOP | 6 | 10-02-2014 15:12:08 |
Recorrer una tabla dentro de un Procedure en MSSQL | Softweb | SQL | 5 | 21-07-2010 21:08:44 |
Duda sobre destrucción de objetos compuestos por otros objetos | noob | OOP | 11 | 16-02-2009 00:28:33 |
Crear objetos dentro de otro objeto. | Nieto | OOP | 5 | 28-11-2007 23:09:12 |
Recorrer todos los objetos creados de una clase propia | mierda | OOP | 1 | 25-10-2007 19:52:10 |
|