FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
Cita:
Con respecto al ambiente Windows, un evento de una clase en Delphi no necesariamente tiene que ser causa de un mensaje de Windows, por ejemplo el evento OnChange de un TStringList, lejos está de ser algo propio del sistema operativo. Los mensajes de Windows, son es la manera que tiene Windows de producir eventos para comunicarle a las ventanas los "eventos" sucedidos. Es medio redundante, pero espero que sea claro. Saludos Foristas!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#22
|
|||
|
|||
Un saludo a todos.
Aunque creo que en lo básico es un tema de semántica, desde mis escasos conocimientos sí se me hace más cómoda una diferenciación entre método y mensaje. Perdonadme si no soy muy estricto en la terminología. Creo que para quien no se interna a menudo en la vcl, que francamente da miedo, el uso de métodos explicitos es lo que se nos presenta como única opción. Quiero decir que es más fácil de comprender y controlar la llamada a un método público de un objeto puesto que sabemos qué es lo que va a ocurrir y casi cuándo. Pero sí me parece que es de alguna manera diferenciable eso, por mucho que internamente se traduzca en mensajes, con por ejemplo la creación de un mensaje nuevo (no tiene que ser de windows como ya se ha comentado) que se lance para que objetos preparados con métodos "oreja" reaccionen en consecuencia. Esta reacción es menos previsible, no es una llamada explicita. |
#23
|
||||
|
||||
Cita:
Cita:
Cita:
Lo que yo trato de establecer es: Desde el punto de vista teórico de orientación a objetos, los objetos se mandan mensajes unos a los otros. En la práctica, distintos sistemas implementarán los objetos y el envío de mensajes de formas distintas. Delphi y Windows son dos ejemplos de implementación de objetos y ambos lo hacen de maneras muy distintas El hecho de que una llamada a un método en Delphi sea un mensaje desde el punto de vista OO, no se debe a que internamente se traduzca a una llamada a SendMessage del Api de Windows, sino a que le estamos comunicando a un objeto lo que deseamos hacer con él. La razón de que Form1.Close, desde el punto de vista de OO, sea un mensaje, no se debe a que se traduzca en una llamada a SendMessage(Form1.Handle, WM_CLOSE, 0, 0). Se debe simplemente a que le estamos comunicando al objeto Form1 que se cierre. Esto es, OO establece el concepto de mensajes desde un punto de vista conceptual y no se preocupa de como estos mensajes se implementen porque de hecho OO no se refiere a ningún lenguaje en particular. Por otro lado, si bien Delphi y Windows son sistemas muy distintos y cada cuál resuelve las cosas a su manera, Delphi debe comunicarse con Windows. Dado que hablan lenguas distintas (implementan OO de formas distintas) debe haber una traducción. El traductor (al menos para la parte visual) es justamente el VCL. Y lo cierto también es que, al programar en Delphi, debido a que en ocasiones debemos lidiar con el Api de Windows, conviene por razones prácticas distinguir llamadas a métodos (implementación Delphi de mensajes OO) de mensajes a ventanas (implementación de Windows de los mensajes OO) // Saludos |
#24
|
||||
|
||||
Cita:
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#25
|
||||
|
||||
Cita:
Cita:
Cita:
// Saludos |
#26
|
||||
|
||||
Tenés razón en que fué un no categórico, pero como vos bien dijiste, conviene por razones prácticas distinguir llamadas a métodos (implementación Delphi de mensajes OO) de mensajes a ventanas (implementación de Windows de los mensajes OO)
Creo que en eso estamos todos de acuerdo. Saludos y Feliz Cumpleaños!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#27
|
||||
|
||||
Cita:
Me parece que sería buena idea declarar cerrado este debate para no empantanarnos en él // Saludos |
|
|
|