motofan logo
4 страниц V < 1 2 3 4 >        
> 

Програмирование, С++

Fenja
сообщение 17.7.2011, 17:44


Авторитет
********

Группа: Модераторы
Сообщений: 5 564
Регистрация: 25.8.2008
Из: г. Пенза
Пользователь №: 179 851
Модель телефона: MotoRazr v3i
Прошивка: MotoUpdate v1.1

Рейтинг: 1756



Не понял толком суть задачи, но, при нажатии повторном нажатии кнопки у тебя имеется уже созданные объекты и известен номер n, ты проверяешь, если уже есть Label+n, то значит объект есть, проверяешь Label+n+1 на наличие, и так до конца диапазона.

З.Ы. Метод конечно не очень smile.gif
З.З.Ы. Если не так понял - сильно не пинать ph34r.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
kai...
сообщение 17.7.2011, 17:47


Мастер
****

Группа: Пользователи
Сообщений: 288
Регистрация: 18.10.2008
Из: Минск, степянкаCITY
Пользователь №: 184 047
Модель телефона: SLVR L7, E398
Прошивка: R4513

Рейтинг: 259



я бы bool массив создал и не парился
Label есть- n-ный элемент массива положителен.

Сообщение отредактировал kai... - 18.7.2011, 10:11
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
IlluminatI
сообщение 17.7.2011, 23:13


Ветеран
*****

Группа: Пользователи
Сообщений: 670
Регистрация: 15.8.2009
Из: Украина, г.Харьков
Пользователь №: 204 570
Модель телефона: [DROID MAXX][RAZR M]


Настроение:
139



Рейтинг: 520



а это массив лейблов?
ну создай список лейблов вместо массива и удаляй\добавляй чё хошь...

Добавлено позже (18.7.2011, 2:15):
Код
for( int i = 0; i < 10; i++ )
if( Label+i == null ) // create label

ну чёто как-то так
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
W.G. Gates III
сообщение 7.8.2011, 10:03


Ветеран
*****

Группа: Пользователи
Сообщений: 479
Регистрация: 8.8.2006
Из: Псков
Пользователь №: 94 294
Модель телефона: Lumia 920
Прошивка: jffs2

Рейтинг: 269



помогите с потоками разобраться smile.gif
есть программа в которой создаю дополнительно два потока
Код
TForm1 *Form1;
MyTime *Thread1;
MyCikl *Thread2;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//создаем поток при нажатии на кнопку
    Thread2 = new MyCikl(false);
    Thread2->FreeOnTerminate = true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
//создаем поток при создании формы
    Thread1 = new MyTime(false);
    Thread1->FreeOnTerminate = true;
}

первый поток выводит текущее время
Код
void __fastcall MyTime::Execute()
{
    //---- Place thread code here ----
    do
    {
        Synchronize(&NewCaptions);
    }
    while (!Terminated);

}
//---------------------------------------------------------------------------

void __fastcall MyTime::NewCaptions()
{
//выводим текущее время
Form1->Label1->Caption = DateTimeToStr(Now());
}

второй долго гоняет какой то цикл
Код
void __fastcall MyCikl::Execute()
{
    //---- Place thread code here ----
    Synchronize(&ProgressBar);
}
//---------------------------------------------------------------------------
void __fastcall MyCikl::ProgressBar()
{
//долгий цикл
int a=0, b=0;
do
{
    do
    {
        b++;
    }
    while (b<65535);
    b=0;
    a++;
    Form1->ProgressBar1->Position = a;
}
while (a<65535);
}

все хорошо, поток со временем начинает работать при загрузке формы и выводит время в метку. когда я запускаю нажатием кнопки поток с циклом, то время замирает. ставил даже приоритет TimeCritical. время все равно стоит. почему так и как это можно исправить?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
W.G. Gates III
сообщение 10.8.2011, 14:05


Ветеран
*****

Группа: Пользователи
Сообщений: 479
Регистрация: 8.8.2006
Из: Псков
Пользователь №: 94 294
Модель телефона: Lumia 920
Прошивка: jffs2

Рейтинг: 269



хм, интересно.
Код
    Application->ProcessMessages();
    Sleep(10);

если добавить такой код, то оба потока работают нормально, форма не зависает. правда это увеличивает время цикла во много раз smile.gif но вот что странно. я не могу прервать поток с циклом
Код
Thread2->Terminate();

и соответственно закрыть форму.
подскажет кто нибудь, как побороть?

Сообщение отредактировал W.G. Gates III - 10.8.2011, 14:07
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
W.G. Gates III
сообщение 11.8.2011, 15:27


Ветеран
*****

Группа: Пользователи
Сообщений: 479
Регистрация: 8.8.2006
Из: Псков
Пользователь №: 94 294
Модель телефона: Lumia 920
Прошивка: jffs2

Рейтинг: 269



приколько. объявил глобальную переменную и при OnClose формы устанавливаю ее в true. а в цикле проверяю если true, то выхожу из функции через return. правда не знаю на сколько это корректно.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Dark Beat
сообщение 11.8.2011, 22:32


moto>inside
*****

Группа: Пользователи
Сообщений: 558
Регистрация: 8.10.2007
Пользователь №: 149 866
Модель телефона: .
Победитель конкурса 2008

Рейтинг: 528.5



Цитата(W.G. Gates III @ Вчера, 18:27)
* глобальную переменную

Страуструп негодует...
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
W.G. Gates III
сообщение 14.8.2011, 7:11


Ветеран
*****

Группа: Пользователи
Сообщений: 479
Регистрация: 8.8.2006
Из: Псков
Пользователь №: 94 294
Модель телефона: Lumia 920
Прошивка: jffs2

Рейтинг: 269



Страуструп негодует...
да пусть негодует smile.gif главное было найти способ прервать поток, а не место где объявить переменную. а вообще, да, глобальные - не хорошо.

таймер кому нибудь нужен?
Прикрепленный файл Таймер.rar   ( 486.96 килобайт ) Кол-во скачиваний: 75

жду критики и предложений smile.gif
ПС: там есть один очень серьезный косяк. если вы нагрузите свой процессор так что он перестанет выделять время моему таймеру, то таймер остановится. Исправление выпущу с сервиспаком smile.gif
Прикрепленный файл Таймер.rar   ( 486.96 килобайт ) Кол-во скачиваний: 75
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
igoripp
сообщение 14.8.2011, 8:20


Самый дерзкий
******

Группа: Пользователи
Сообщений: 1 412
Регистрация: 27.3.2010
Из: Касимов, Муром
Пользователь №: 215 540
Модель телефона: sony ion
Прошивка: Разные

Рейтинг: 1335.5



W.G. Gates III, сделай пожалуйста цифры поярче)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
W.G. Gates III
сообщение 14.8.2011, 8:35


Ветеран
*****

Группа: Пользователи
Сообщений: 479
Регистрация: 8.8.2006
Из: Псков
Пользователь №: 94 294
Модель телефона: Lumia 920
Прошивка: jffs2

Рейтинг: 269



поярче? а какого цвета? можно попробовать фон убрать.

они наверно всегда будут не яркими из за того что контуры рисуются. могу их убрать.

вот так наверно получше
Прикрепленный файл Таймер_v1.1.rar   ( 488.35 килобайт ) Кол-во скачиваний: 86


Сообщение отредактировал W.G. Gates III - 14.8.2011, 8:54
Прикрепленный файл Таймер_v1.1.rar   ( 488.35 килобайт ) Кол-во скачиваний: 86
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Програмирование, С++ · Обо всём · Forum
 

4 страниц V < 1 2 3 4 >
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 24.4.2024, 11:54

Форум живёт: