Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
#1

Embarcadero - Мобильное приложение для Андроид

14.08.2014, 14:50. Просмотров 2598. Ответов 14
Метки нет (Все метки)

Добрый день!Пишу приложение для Андроид, компилирую на ХЕ6. Был код на С++ Билдер. Под Embarcadero его немного изменил. Подскажите пожалуйста, где исправить ошибки в коде: (UI, наверно вы сможете детальнее помочь, код вам знаком с предыдущих тем)

Unit2.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <fmx.h>
#include <algorithm>
#include <stdexcept>
#include "Unit2.h"
#include "Unit3.h"
 
#pragma hdrstop
 
 //---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.fmx"
 
extern const int size = 7;   
extern int MySleep;
TRect Coord;
TForm2 *Form2;
 
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
ListBox1->Clear();
 ListBox2->Clear();
  calcThread_1 = new CalcThread(false);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button4Click(TObject *Sender)
{
 
 
  MyTerminated = false;
 
  Button3->Visible=true;
  Button5->Visible=true;
 
  DWORD Msg;
 
for( int i = StrToInt(Edit2->Text); i < StrToInt(Edit3->Text); i++ )
   {
    for( int j = 1; j<8; j++ )
    {
 
                   {
                String str_tmp = "";
                str_tmp = Form2->ListBox1->Items->Strings[i];
                switch( StrToInt(Form2->ListBox1->Items->Strings[i].SubString(j,1)) ) 
                {
                    case 1: { Form2->Fill->Color= TAlphaColor (claRed);
                            
                            } break;
                    case 2: { Form2->Fill->Color= TAlphaColor (claOrange);
                            
                            } break;
                    case 3: { Form2->Fill->Color= TAlphaColor (claYellow);
                          
                            } break;
                    case 4: { Form2->Fill->Color= TAlphaColor (claGreen);
                            
                            } break;
                    case 5: { Form2->Fill->Color= TAlphaColor (claDeepskyblue);
                            
                            } break;
                    case 6: { Form2->Fill->Color= TAlphaColor (claBlue);
                           
                            } break;
                    case 7: { Form2->Fill->Color= TAlphaColor (claDarkorchid);
                            
                            } break;
                } 
              } break;
}
Sleep( MySleep );
        Application->ProcessMessages();
}
Unit3.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <fmx.h>
#include "Unit2.h"
#include "Unit3.h"
#include <algorithm>
//#include <windows.h>
#include <stdexcept>
//#include <mmsystem.h>
//#include <Forms.hpp>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma package(smart_init)
 #pragma resource "*.fmx"
//HMIDIOUT Out;        
int i = 0, j = 0;     
const int size = 7;   
int MySleep;    
TStringList *L = new TStringList;
TStringList *all;
 
 
void __fastcall CalcThread::Execute()
{
 
  String indexes[size] =
    {"1", "2", "3", "4", "5", "6", "7"};
 
  all = new TStringList();
  do
    {
    String s = "";
    for (int i = 0; i < size; i++)
      s += indexes[i] + (i < size - 1 ? "," : "");
    all->Add(s);
    }
    while (std::next_permutation(indexes, indexes + size));
 
  for (int i = 0; i < all->Count / 6; i++)
    {
    all->Exchange(6*i + 2, 6*i + 4);
    all->Exchange(6*i + 3, 6*i + 5);
    all->Exchange(6*i + 4, 6*i + 5);
    }
 
  Synchronize( SyncCalcThread );
 
  delete all;
}
 
void __fastcall CalcThread::SyncCalcThread()
{
 LB_Contents->Clear();
    //Form2->ListBox1->Count = all->Count;
 
   Form2->ListBox2->Items->Assign(all);
    String userData =Form2->Edit1->Text;
    Form2->ListBox1->Items->BeginUpdate();
 
    std::auto_ptr<TStringList>L(new TStringList);
    if (Form2->RadioButton1->IsChecked == true)
 
          {
        for (int i = 0; i < all->Count; i++)
        {
            L->Clear();
            String s = "";
            if (i == 0)
            {
                if (Form2->RadioButton3->IsChecked == true)
                {
                    all->Exchange(0, 0);
                  }
                if (Form2->RadioButton4->IsChecked == true)
                   {    all->Exchange(1, 0);
                    }
                if (Form2->RadioButton5->IsChecked == true)
                   {    all->Exchange(2, 0);
                    }
                if (Form2->RadioButton6->IsChecked == true)
                   {    all->Exchange(3, 0);
                    }
                if (Form2->RadioButton7->IsChecked == true)
                    {all->Exchange(4, 0);
                    }
                if (Form2->RadioButton8->IsChecked == true)
                    {all->Exchange(5, 0);
                    }
 
            }
            L->CommaText = all->Strings[i];
            for (int j = 0; j < L->Count; j++)
                s += userData[StrToInt(L->Strings[j])];
            Form2->ListBox1->Items->Add(s);
            LB_Contents->Add(s);
        }
    }
 
    if (Form2->RadioButton2->IsChecked == true)
    {
        // "ГђГ*çâåðГ*ГіГІГј" LB_Contents
        //int lc = Form1->LB_Contents->Count / 2;
        for (int i=0;i < (all->Count / 2); i++)
        {
          all->Exchange(i, all->Count-i-1);
        }
 
L->Clear();
          String s = "";
          L->CommaText = all->Strings[i];
          for (int j = 0; j < L->Count; j++)
            s += userData[StrToInt(L->Strings[j])];
          Form2->ListBox1->Items->Add(s);
          LB_Contents->Add(s);
        }
 
    Form2->ListBox1->Items->EndUpdate();
}
Unit2.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#ifndef Unit2H
#define Unit2H
//---------------------------------------------------------------------------
#include <System.Classes.hpp>
#include <FMX.Controls.hpp>
#include <FMX.Forms.hpp>
#include <FMX.Layouts.hpp>
#include <FMX.ListBox.hpp>
#include <FMX.StdCtrls.hpp>
#include <FMX.Types.hpp>
 #include "Unit3.h"
#include <FMX.Edit.hpp>
//#include <CheckLst.hpp>
//---------------------------------------------------------------------------
class TForm2 : public TForm
{
__published:    // IDE-managed Components
    TButton *Button1;
    TButton *Button2;
    TRadioButton *RadioButton2;
    TButton *Button3;
    TButton *Button4;
    TButton *Button5;
    TEdit *Edit2;
    TEdit *Edit3;
    TRadioButton *RadioButton5;
    TRadioButton *RadioButton6;
    TRadioButton *RadioButton7;
    TRadioButton *RadioButton3;
    TRadioButton *RadioButton4;
    TRadioButton *RadioButton8;
    TRadioButton *RadioButton9;
    TRadioButton *RadioButton10;
    TRadioButton *RadioButton11;
    //TRadioButton *Цвет;
    TRadioButton *RadioButton12;
    TRadioButton *RadioButton13;
    TRadioButton *RadioButton14;
    TCheckBox *CheckBox1;
    TCheckBox *CheckBox2;
    TCheckBox *CheckBox3;
    TCheckBox *CheckBox4;
    TCheckBox *CheckBox5;
    TCheckBox *CheckBox6;
    TCheckBox *CheckBox7;
    TCheckBox *CheckBox8;
    TCheckBox *CheckBox9;
    TCheckBox *CheckBox10;
    TCheckBox *CheckBox11;
    TCheckBox *CheckBox12;
    TRadioButton *RadioButton15;
    TListBox *ListBox1;
    TListBox *ListBox2;
    TEdit *Edit1;
    TRadioButton *RadioButton1;
    void __fastcall Button2Click(TObject *Sender);
    void __fastcall ListBox1Data(TControl *Control, int Index,
          AnsiString &Data);
    void __fastcall Button4Click(TObject *Sender);
    void __fastcall Button5Click(TObject *Sender);
    void __fastcall OnResetColor();
    void __fastcall FormCreate(TObject *Sender);
private:    // User declarations
public:     // User declarations
          CalcThread  *calcThread_1;
          TStringList *LB_Contents;
    __fastcall TForm2(TComponent* Owner);
 
    bool MyTerminated;
};
//---------------------------------------------------------------------------
extern PACKAGE TForm2 *Form2;
//---------------------------------------------------------------------------
#endif
Unit3.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#ifndef Unit3H
#define Unit3H
#include <System.Classes.hpp>
#include "Unit2.h"
#include <FMX.Forms.hpp>
#include <FMX.Controls.hpp>
#include <FMX.Layouts.hpp>
#include <FMX.ListBox.hpp>
#include <FMX.StdCtrls.hpp>
#include <FMX.Types.hpp>
 #include "Unit3.h"
#include <FMX.Edit.hpp>
 
//---------------------------------------------------------------------------
class CalcThread : public TThread                          
{
private:
        TStringList *all;
        TStringList *LB_Contents;
protected:
        void __fastcall Execute();
        void __fastcall SyncCalcThread();
public:   TCheckBox *CheckBox1;
          TCheckBox *CheckBox2;
          TCheckBox *CheckBox3;
        __fastcall CalcThread(bool CreateSuspended)
                : TThread(CreateSuspended)
                {
                FreeOnTerminate = true;
                };
};
 
 
#endif
Ошибки:

[CLANG Error] Unit3.cpp(66): no member named 'auto_ptr' in namespace 'std'
[CLANG Error] Unit3.cpp(66): 'TStringList' does not refer to a value
System.Classes.hpp(1129): declared here
[CLANG Error] Unit3.cpp(66): called object type 'System::Classes::TStringList __borland_class *' is not a function or function pointer
Failed
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.08.2014, 14:50
Ответы с готовыми решениями:

Embarcadero RAD Studio XE7 (С++) + Андроид устройства
Добрый день! Возможно, многим покажется эта тема абсурдной, но тем не менее, у...

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

Мобильное приложение
Друзья доброе время суток. Подскажите пожалуйста. Я создал приложение в...

WordPress и мобильное приложение
Всем привет. Ребят, есть такой вопрос. Есть мобильное приложение, для андроидов...

Мобильное приложение не распознает кириллицу
Добрый день! Имеется мобильное приложение на базе Android, которое черпает...

14
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25956 / 17403 / 6903
Регистрация: 22.10.2011
Сообщений: 30,640
Записей в блоге: 6
14.08.2014, 16:06 #2
Цитата Сообщение от Pir12345 Посмотреть сообщение
no member named 'auto_ptr' in namespace 'std'
У тебя ж
C++
1
#include <memory>
нет, именно там описан auto_ptr
0
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
15.08.2014, 12:16  [ТС] #3
Точно, упустил, но теперь выдает ошибку

processing resource 'Unit3.fmx', -1

Добавлено через 20 часов 3 минуты
UI, а что это за ошибка появилась?гугл молчит по этому поводу
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25956 / 17403 / 6903
Регистрация: 22.10.2011
Сообщений: 30,640
Записей в блоге: 6
15.08.2014, 13:32 #4
Да откуда я знаю? Я XE5/XE6 вообще в глаза не видел, сырые они, чтобы что-то на них делать, кроме HelloWorld-ов... Даже под Windows. А уж тем более под Андроид.
0
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
15.08.2014, 13:35  [ТС] #5
Не видел, то возможно. Но советы канкретно правильные- просто класс.
Я тоже слышал что сырые они, только вот никак непойму, через что тогда пишут приложения для Андроид? На Андроиде порой встречаешь приложения, далеко не Хелло Ворд
0
NotBeginner
170 / 157 / 71
Регистрация: 22.02.2013
Сообщений: 1,770
Записей в блоге: 2
15.08.2014, 14:38 #6
Цитата Сообщение от Pir12345 Посмотреть сообщение
Андроиде
JAVA
0
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
15.08.2014, 14:42  [ТС] #7
NotBeginner, а как потом этот код на JAVA в .apk собирают?Можете дать весь комплекс ПО, необходимого для разработки?
0
Yushka
4 / 4 / 0
Регистрация: 24.07.2013
Сообщений: 80
15.08.2014, 16:08 #8
Pir12345, IntellijIDEA/Android Studio/Eclipse+Android SDK+JDK и всё. Собираются автоматически при компиляции. Изначально не планировалось, чтобы на сях под андроид кодили, чтобы не было жёсткой привязки к аппаратному обеспечению. Java с её виртуалкой работают универсально, потому-то на неё и пал выбор.
0
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
19.08.2014, 10:15  [ТС] #9
UI, удалось отладить ошибки о которых писал выше. Уже виднеется финишь, единственное что:

Если закомметирована строчка 52 unit3.cpp, то выходит ошибка:

[ldandroid Error] C:\xxx\Embarcadero\Studio\14.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.6\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: .\Android\Debug\Unit2.o: in function _ZTM6TForm2:.\Android\Debug\Unit2.o.ll(.data.rel.ro._ZTM6TForm2+0x2a): error: undefined reference to 'TForm2::ListBox1Data(Fmx::Controls::TControl*, int, System::AnsiStringT<(unsigned short)0>&)'

Если же ее раскомментировать, то выходят ошибки:

Unit3.cpp(52): cannot write a property that has no write specifiers

Похоже что компилятору не нравится способ заполнения ListBox1 (строчка 52 unit3.cpp).
Можно как то изменить способ заполнения?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25956 / 17403 / 6903
Регистрация: 22.10.2011
Сообщений: 30,640
Записей в блоге: 6
19.08.2014, 11:47 #10
Pir12345, если бы ты тогда, когда спрашивал об этом приложении, уточнил, что тебе оно нужно не для VCL, а для FMX, я бы придумал другой способ. В FMX действительно нет возможности выставлять TListBox::Count, поскольку:
C++
1
2
__property int Count = {read=GetCount, nodefault}; // FMX
__property int Count = {read=GetCount, write=SetCount, nodefault}; // VCL
Чувствуешь разницу? Геттер в Firemonkey есть, а сеттера - нет. И события OnData нет, а значит и возможности организовать виртуальный ListBox - тоже нет, надо переписывать код полностью. Но я это могу попробовать сделать только под Windows, у меня XE2, там FMX-то есть, а вот Андроидом даже не пахнет еще...
0
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
20.08.2014, 09:52  [ТС] #11
UI, спасибо большое за ответ.
Не совсем так.Дело в том, что мне программа нужна была именно для VCL (она там уже работает, за что вам, как непосредственному участнику ОГРОМНОЕ СПАСИБО!!!).
Для FMX я решил сделать ее позже. Причем для FMX я решил именно подправить уже написанный VCL вариант, а не писать заново, тем более на java. Поэтому и искал всякие компиляторы С++- Андроид.

Может быть есть возможность переписать по другому для VCL(под Windows) некоторые моменты, чтобы потом просто подправить у меня на FMX для Андроид. То есть сделать код так, чтобы потом не было ступора отсутствия свойств компонент и т .п.

Добавлено через 21 час 41 минуту
UI, что скажете?сможем так попробовать?
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25956 / 17403 / 6903
Регистрация: 22.10.2011
Сообщений: 30,640
Записей в блоге: 6
20.08.2014, 10:05 #12
Я попробую, только не сегодня, и не в этой ветке. Найду твою старую тему, и отвечу там, если что-нибудь получится. Договорились?
0
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
20.08.2014, 10:20  [ТС] #13
UI, Да конечно, договорились!Буду ждать. Спасибо!
0
Pir12345
42 / 0 / 1
Регистрация: 05.01.2014
Сообщений: 305
26.08.2014, 08:55  [ТС] #14
UI, Вы не забыли про программу, хотел Вам напомнить.

Со своей стороны упростил код по предела, выкинул виртуальный листбокс

Unit1.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#include <fmx.h>
#include <algorithm>
//#include <windows.h>
#include <stdexcept>
 
#pragma hdrstop
 
#include "Unit3.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.fmx"
 
extern const int size = 7;
extern int MySleep;
int Data1;
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
    : TForm(Owner)
{ MyTerminated = false;
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Form2->ListBox1->Clear();
Form2->ListBox2->Clear();
calcThread_1 = new CalcThread(false);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{
MyTerminated = false;
  //colorThread_1 = new ColorThread(false);
  //soundThread_1 = new SoundThread(false);
 
 // HMIDIOUT Out;
  DWORD Msg;
  //midiOutOpen(&Out,0,0,0,0);
  for( int i = 0; i < Form2->ListBox1->Count ; i++ )
    {
    for( int j = 1; j<8; j++ )
      {
      Data1 = StrToInt(Form2->ListBox1->Items->Strings[i].SubString(j,1));
      switch( StrToInt(Form2->ListBox1->Items->Strings[i].SubString(j,1)) )
        {
        case 1: { Form2->Fill->Color= TAlphaColor (claRed);
                   //Msg = (0x90 + (60 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 2: { Form2->Fill->Color= TAlphaColor (claOrange);
                  // Msg = (0x90 + (62 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 3: { Form2->Fill->Color= TAlphaColor (claYellow);
                   //Msg = (0x90 + (64 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 4: { Form2->Fill->Color= TAlphaColor (claGreen);
                   //Msg = (0x90 + (65 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 5: { Form2->Fill->Color= TAlphaColor (claDeepskyblue);
                   //Msg = (0x90 + (67 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 6: { Form2->Fill->Color= TAlphaColor (claBlue);
                   //Msg = (0x90 + (69 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                    }
                   break;
        case 7: { Form2->Fill->Color= TAlphaColor (claDarkorchid);
                   //Msg = (0x90 + (71 * 0x100) + (0x7f * 0x10000));
                   //midiOutShortMsg(Out,Msg);
                   }
                   break;
        }
 
      //Form2->Repaint();
 
      Sleep( MySleep );
      Application->ProcessMessages();
      //if( MyTerminated )
        //goto halt;
      }
 
    }
//halt:
//OnResetColor();
//midiOutClose(Out);
 }
//---------------------------------------------------------------------------
void __fastcall TForm2::Button3Click(TObject *Sender)
{
MyTerminated = true;
  //colorThread_1->Terminate(); //new ColorThread(true);
  //soundThread_1->Terminate(); //new SoundThread(true);
  //midiOutClose(Out);
  //OnResetColor();
}
//---------------------------------------------------------------------------
void __fastcall TForm2::Edit2Change(TObject *Sender)
{
if(Edit2->Text.Length()>0)
MySleep = StrToInt(Edit2->Text);
}
Unit2.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#pragma hdrstop
 
#include "Unit3.h"
#include "Unit2.h"
#include <algorithm>
#include <memory>
//#include <windows.h>
#include <stdexcept>
//---------------------------------------------------------------------------
#pragma package(smart_init)
 
int i = 0, j = 0;
const int size = 7;
int MySleep = 300;
 
void __fastcall CalcThread::Execute()
{
 
  String indexes[size] =
    {"1", "2", "3", "4", "5", "6", "7"};
 
  all = new TStringList();
  do
    {
    String s = "";
    for (int i = 0; i < size; i++)
      s += indexes[i] + (i < size - 1 ? "," : "");
    all->Add(s);
    }
    while (std::next_permutation(indexes, indexes + size));
 
  for (int i = 0; i < all->Count / 6; i++)
    {
    all->Exchange(6*i + 2, 6*i + 4);
    all->Exchange(6*i + 3, 6*i + 5);
    all->Exchange(6*i + 4, 6*i + 5);
    }
 
  Synchronize( SyncCalcThread );
 
  delete all;
}
//---------------------------------------------------------------------------
void __fastcall CalcThread::SyncCalcThread()
{
  Form2->ListBox2->Items->Assign(all);
              { if (Form2->RadioButton3->IsChecked == true)
                   {
                    all->Exchange(0, 0);
                   }
                if (Form2->RadioButton4->IsChecked == true)
                   {    all->Exchange(1, 0);
                   }
                if (Form2->RadioButton5->IsChecked == true)
                   {    all->Exchange(2, 0);
                   }
                if (Form2->RadioButton6->IsChecked == true)
                   {    all->Exchange(3, 0);
                   }
                if (Form2->RadioButton7->IsChecked == true)
                    {   all->Exchange(4, 0);
                    }
                if (Form2->RadioButton8->IsChecked == true)
                    {   all->Exchange(5, 0);
                    }
                }
 
       /*
      switch (Form2->RadioGroup1->ItemIndex)
     {
        case 0:all->Exchange(0, 0);
           break;
        case 1:all->Exchange(1, 0);
           break;
        case 2:all->Exchange(2, 0);
           break;
        case 3:all->Exchange(3, 0);
           break;
        case 4:all->Exchange(4, 0);
           break;
        case 5:all->Exchange(5, 0);
           break;
    }
            */
 
  String userData = Form2->Edit1->Text;
  Form2->ListBox1->Items->BeginUpdate();
 
  std::auto_ptr<TStringList>L(new TStringList);
 
//Ïðÿìîé Г°Г*Г±Г·ГҐГІ
  if(Form2->CheckBox1->IsChecked == true)
    {
    for (int i = 0; i < all->Count; i++)
      {
      L->Clear();
      String s = "";
      L->CommaText = all->Strings[i];
      for (int j = 0; j < L->Count; j++)
        s += userData[StrToInt(L->Strings[j])];
      Form2->ListBox1->Items->Add(s);
      }
    Form2->ListBox1->Items->EndUpdate();
    }
 
//ГЋГЎГ°Г*ГІГ*ûé Г°Г*Г±Г·ГҐГІ
  if(Form2->CheckBox2->IsChecked == true)
    {
     for (int i=0;i < (all->Count / 2); i++)
    //for (int i = 0; i < all->Count; i++)
      {
      all->Exchange(i, all->Count-i-1);
      L->Clear();
      String s = "";
      L->CommaText = all->Strings[i];
      for (int j = 0; j < L->Count; j++)
        s += userData[StrToInt(L->Strings[j])];
      Form2->ListBox1->Items->Add(s);
      }
    Form2->ListBox1->Items->EndUpdate();
    }
 
}
Проект скомпилировался, сформировался .apk, запустился на Андроиде, но сильно долго выполняется расчет CalcThread и почему то выводятся данные только в lisbox2, lisbox1- пустое. Соответственно дальше по кнопке Button2 программа не запускается.
0
ILNAR_93
26.08.2014, 15:33     Embarcadero - Мобильное приложение для Андроид
  #15

Не по теме:

Под Андроид на Firemonkey ? Мой тебе совет: не трать свое время! Приложения не запустятся на огромном количестве устройств :)

0
26.08.2014, 15:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.08.2014, 15:33
Привет! Вот еще темы с ответами:

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

С#, Мобильное приложение. Пожалуйста, ПОМОГИТЕ!
Всем привет! Имеется срочный вопрос на засыпку. Помогите, пожалуйста... Уже...

Мобильное приложение на базе готового сайта
Добрый вечер! Подскажите пожалуйста как быть! Есть готовый сайт/интернет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru