Как я могу передать контроль в качестве ссылки в Bada? - PullRequest
0 голосов
/ 12 июля 2010

В целом я хочу создать в Bada приложение на основе фреймов, которое имеет единственный элемент управления пользовательского интерфейса - метку. Пока все хорошо, но я хочу, чтобы он отображал число по своему выбору и уменьшал его многократно каждые X секунд. Потоки в порядке (я думаю), но я не могу передать указатель метки как переменную класса.

//MyTask.h 
//...
result Construct(Label* pLabel, int seconds);
//...
Label* pLabel;

//MyTask.cpp
//...
result
MyTask::Construct(Label* pLabel, int seconds) {
 result r = E_SUCCESS;
 r = Thread::Construct(THREAD_TYPE_EVENT_DRIVEN);
 AppLog("I'm in da constructor");
 this->pLabel = pLabel;
 this->seconds = seconds;

 return r;
}
//...

bool
Threading::OnAppInitializing(AppRegistry& appRegistry)
{
// ...

    Label* pLabel = new Label();
 pLabel = static_cast<Label*>(pForm->GetControl(L"IDC_LABEL1"));
 MyTask* task = new MyTask();
 task->Construct(&pLabel); // HERE IS THE ERROR no matching for Label**
 task->Start();

// ...
}

Проблема в том, что я перепробовал все возможные комбинации *, & и просто pLabel, известные в комбинаторике ...

Это не очень важно, чтобы я получил это (только для обучения), но мне не терпится понять, как решить проблему.

Ответы [ 2 ]

0 голосов
/ 21 июля 2010

Нет, не знаю.Я не знаю второго параметра.Но эта проблема решена.Если я объявляю переменную Object* __pVar, тогда конструктор должен быть Init(Object* pVar), и если я хочу инициализировать переменную экземпляра, я должен написать

Object* pVar = new Object();
MyClass* mClass = new MyClass();
mClass->Construct(pVar);
0 голосов
/ 20 июля 2010

Вы пробовали:

task->Construct(pLabel, 0);

И тем самым хочу отметить, что вам не хватает второго параметра для MyTask :: Construct.

...