Recent

Author Topic: pregunta sobre eventos  (Read 3663 times)

zelda16bit

  • New Member
  • *
  • Posts: 48
pregunta sobre eventos
« on: June 08, 2021, 10:02:42 pm »
En la parte donde se habla sobre eventos o variables de procedimiento no me ha quedado muy claro.

La parte donde se aplica en los procedimientos y funciones lo he entendido pero en la parte de clases ya me he liado.Esta en el punto 8.2 del manual.
https://castle-engine.io/modern_pascal_introduction.html#Callbacks

Pongo el ejemplo que viene:
Code: Pascal  [Select][+][-]
  1. {$mode objfpc}{$H+}{$J-}
  2. uses
  3.   SysUtils;
  4.  
  5. type
  6.   TMyMethod = procedure (const A: Integer) of object;
  7.  
  8.   TMyClass = class
  9.     CurrentValue: Integer;
  10.     procedure Add(const A: Integer);
  11.     procedure Multiply(const A: Integer);
  12.     procedure ProcessTheList(const M: TMyMethod);
  13.   end;
  14.  
  15. procedure TMyClass.Add(const A: Integer);
  16. begin
  17.   CurrentValue := CurrentValue + A;
  18. end;
  19.  
  20. procedure TMyClass.Multiply(const A: Integer);
  21. begin
  22.   CurrentValue := CurrentValue * A;
  23. end;
  24.  
  25. procedure TMyClass.ProcessTheList(const M: TMyMethod);
  26. var
  27.   I: Integer;
  28. begin
  29.   CurrentValue := 1;
  30.   for I := 2 to 10 do
  31.     M(I);
  32. end;
  33.  
  34. var
  35.   C: TMyClass;
  36. begin
  37.   C := TMyClass.Create;
  38.   try
  39.     C.ProcessTheList(@C.Add);
  40.     WriteLn('1 + 2 + 3 ... + 10 = ', C.CurrentValue);
  41.  
  42.     C.ProcessTheList(@C.Multiply);
  43.     WriteLn('1 * 2 * 3 ... * 10 = ', C.CurrentValue);
  44.   finally
  45.     FreeAndNil(C);
  46.   end;
  47. end.
  48.  

No he entendido nada,alguien me lo podria explicar con un ejemplo mas sencillo.

Edson

  • Hero Member
  • *****
  • Posts: 1176
Re: pregunta sobre eventos
« Reply #1 on: June 09, 2021, 05:33:31 am »
Los ejemplos de esa página son un poco complejos.

Te recomiendo que empieces con ejemplos más simples. Los ejemplos de https://www.freepascal.org/docs-html/ref/refse17.html son más simples. También los de aquí: http://docwiki.appmethod.com/appmethod/1.13/topics/en/Procedural_Types

Finalmente, la práctica te hará entender mejor esos conceptos.
Lazarus 2.0.10 - FPC 3.2.0 - x86_64-win64 on Windows 8

zelda16bit

  • New Member
  • *
  • Posts: 48
Re: pregunta sobre eventos
« Reply #2 on: June 09, 2021, 04:47:06 pm »
Voy haber si con esos enlaces me queda mas claro. :)

 

TinyPortal © 2005-2018