1. Pascal / Говнокод #27297

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    type
    .....
    TSyncParamsPasser = class
       PassedJSON:String;
       constructor Create(RJS:String);
       procedure ProcessExternalCmd;
      end;
    .....
    .....
    procedure TForm1.TCPServerExecute(AContext: TIdContext);
    begin
    .....
       SyncParamsPasser:=TSyncParamsPasser.Create(CustomData);
       TIdSync.SynchronizeMethod(SyncParamsPasser.ProcessExternalCmd);
       FreeAndNil(SyncParamsPasser);
    .....
    end;
    .....
    constructor TSyncParamsPasser.Create(RJS:String);
    begin
     PassedJSON:=RJS;
    end;
    
    procedure TSyncParamsPasser.ProcessExternalCmd;
    var
     JSON:TJSONObject;
    begin
     JSON:=TJSONObject.ParseJSONValue(PassedJSON) as TJSONObject;
    .....

    Событие OnExecute компонента TCPServer вызывается из рабочего потока, в котором обрабатывается входящее подключение.

    Способ передачи параметров в процедуру, выполняющуюся внутри Synchronize, с помощью класса.
    Говно или сойдёт?

    Запостил: SmseR, 16 Марта 2021

    Комментарии (7) RSS

    • SyncParamsPasser - локальная переменная внутри TCPServerExecute, забыл указать
      Ответить
    • Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации.
      Ответить
      • > ранее изучавших Бейсик
        > подверглись необратимой умственной деградации

        ;(
        Ответить
        • Исследования показали, что некоторые пациенты после введения препарата "Бейсик" бредили, теряли чувство реальности и
          https://github.com/bormand/pp_aes
          начинали мыслить извращёнными шаблонами!
          https://github.com/bormand/ct_aes
          Ответить
          • В языке "D" это делается намного лучше.
            Ответить
            • В "D" это просто обыденность, угу. В общем-то даже в свежих крестах это теперь не так ебануто выглядит.
              Ответить
      • Именно поэтому я за «PHP».
        Ответить

    Добавить комментарий