Перейти к содержанию
Fire Monkey от А до Я
  • 0

Builder C++ матерится на Synchronize при компиляции под андройд


Ghk

Вопрос

Всем привет.
Прошу помощи.
имеем вот такой кусок кода  для запления комбобокса возможными сервисами , которые предоставляет выбранное блютуз устройство
 

Цитата

 

void __fastcall TTabbedForm::PrListItem_MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift,
          float X, float Y) // событие по клику в листе блютуз устройств
{ TargetPaireNo =  PrListBox->ItemIndex; //номер индекса устройства от которого будем получать  список сервисов
  Services_cb->Clear(); // очистили комбобокс с сервисов
 ToastMessage_On(((TListBoxItem*)Sender)->Text +  L"Service Searching..." ); //вывели тост
 if (TargetPaireNo>-1)// если выбрано какое-то устройство в листе устройств
    {

//объявляем класс потока чтобы сделать поиск сервисов в фоновом режиме , для исключения тормозов приложения

class TAnThread: public TThread
      { public:
        

       __fastcall TAnThread():TThread(false) //конструктор
        {FreeOnTerminate=true;
         };


         void _fastcall TreadToast()// периносим названия сервисов в комбобокс и схлопываем тост
               {for(int i=0; i<BT->ServiceList->Count;i++)
                 TabbedForm->Services_cb->Items->Add( BT->ServiceList->Items.Name);
                    TabbedForm->ToastMessage_Off(L"Searching Completed.");
                };

// Ниже поток- запрос сервисов у выбранного блютуз устроства

        void _fastcall TAnThread::Execute(void)
        {BT->ServiceList = BT->DeviceList->Items[TabbedForm->TargetPaireNo]->GetServices();    
         Synchronize(&TreadToast);
        };
          
     };
    //запускаем поток  на исполнение
    TAnThread* D= new TAnThread ; // TAnThread

    }

}

 

 

 

Все это прекрасно работает при компиляции под win32  никаких проблем нет .
При попытке компиляции под Android . компилятор матерится на     Synchronize(&TreadToast);

Цитата

[bccaarm Error] TabbedTemplate.cpp(126): no matching member function for call to 'Synchronize'

Ну и в развороте вот что там имеется:

System.Classes.hpp(2136): candidate function not viable: no known conversion from 'void (__closure *)()' to 'PSynchronizeRecord' (aka          'System::Classes::TThread::TSynchronizeRecord *') for 1st argument;
  System.Classes.hpp(2154): candidate function not viable: no known conversion from 'void (__closure *)()' to 'TThreadMethod' (aka 'void (__closure *)() __attribute__((pcs("aapcs-vfp")))') for 1st argument;
  System.Classes.hpp(2156): candidate function not viable: no known conversion from 'void (__closure *)()' to '_di_TThreadProcedure' (aka 'DelphiInterface<System::Classes::TThreadProcedure>') for 1st argument;
  System.Classes.hpp(2177): candidate function not viable: requires 2 arguments, but 1 was provided
  System.Classes.hpp(2180): candidate function not viable: requires 2 arguments, but 1 was provided

 Чего ему надо-то ?   Сижу сутки бьюсь  ...хз чо делать.

Изменено пользователем Andrey Efimov
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Значит что-то неверно используете. Synchronize нужен по сути  только для того, чтобы какая-то часть кода выполнилась в главном потоке. В основном  используется для вывода диалоговых окон, или обновления контролов. 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...