Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2014, 13:02   #11
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Аватар и???
doktor255 вне форума Ответить с цитированием
Старый 03.06.2014, 13:04   #12
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Ну запишите метод передачи прямо в методе синхронизации...не на Delphi 7 же пишите.(Пример во 2м посте).
Человек_Борща вне форума Ответить с цитированием
Старый 03.06.2014, 13:07   #13
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
и???
TThreadMethod = procedure of object;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.06.2014, 13:16   #14
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Человек_Борща Ничего не поменялось. Ошибка та же. Среда XE6
Код:
procedure TDisplayLoader.IdThreadComponentRun(Sender: TIdThreadComponent);
var
  AParam: TParam;
begin
...
  Sender.Synchronize(procedure
  begin
     BlendPng(AParam, true);
  end);
Аватар Хватит фигню писать. Я тебя не понимаю.

Последний раз редактировалось doktor255; 03.06.2014 в 13:23.
doktor255 вне форума Ответить с цитированием
Старый 03.06.2014, 13:24   #15
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от doktor255 Посмотреть сообщение
Человек_Борща Ничего не поменялось. Ошибка та же. Среда XE6
Код:
procedure TDisplayLoader.IdThreadComponentRun(Sender: TIdThreadComponent);
var
  AParam: TParam;
begin
...
  Sender.Synchronize(procedure
  begin
     BlendPng(AParam, true);
  end);
Аватар Хватит фигню писать. Я тебя не понимаю.
процедура синхронизации должна быть методом объекта, если не работает лямбда, то пишите отдельно метод вашего класса.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.06.2014, 13:27   #16
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Ну а методом я пробовал изначально, ещё до постинга на форуме. Пришлось для этого выносить передаваемые переменные в глобальные. Код компилируется, но работает ровно точно так же. Синхронизации не происходит, код исполняется в дополнительном потоке.
doktor255 вне форума Ответить с цитированием
Старый 03.06.2014, 13:27   #17
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
procedure of object
Я думал, что программисты все знают, что это такое. Пепел доступно объяснил?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.06.2014, 13:46   #18
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Он хочет сказать что метод должен быть чьим-то.

Попробуй так:
Код:
type
   TThreadCaller = class(TObject)
   Param1:string;
   procedure CallFunc; //Вызов супер-функции спередачей ей Param1
   end;

procedure TDisplayLoader.IdThreadComponentRun(Sender: TIdThreadComponent);
var
  TC:TThreadCaller;
begin
...
  TC:=TThreadCaller.create;
  TC.Param1:='DATA';
  Sender.Synchronize(TC.CallFunc);
Вот почему idThreadComponent - шлак...

Хотя TThread тожене айс, но ничего не поделать

Последний раз редактировалось Человек_Борща; 03.06.2014 в 13:48.
Человек_Борща вне форума Ответить с цитированием
Старый 03.06.2014, 21:27   #19
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Проблема в том что проблема осталась. На днях как освобожусь, буду переписывать модуль по чистый THread. Возникнут проблемы, будем разбираться дальше уже с THread.
doktor255 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синхронизация kuba1981 PHP 9 06.05.2013 11:39
Синхронизация БД Bright-rider БД в Delphi 3 19.06.2012 07:32
Синхронизация tesseract Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 20.03.2012 10:31
Синхронизация Jakethefish PHP 0 24.08.2011 11:17
Синхронизация kostyan142 Общие вопросы по Java, Java SE, Kotlin 6 13.01.2010 01:39