Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пропадает строка из StatusBar, при длительном выполнении программы 
:(
    Опции темы
Iwan777
Дата 13.5.2007, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.5.2007

Репутация: нет
Всего: нет



Подскажите, как исправить. При длительном выполнении программы строка из StatusBar исчезает. Пробовал добавлять в цикл обработки, чтобы постоянно строка выводилась, не помогает.
PM MAIL   Вверх
dumb
Дата 13.5.2007, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 32
Всего: 158



Цитата(Iwan777 @  13.5.2007,  09:36 Найти цитируемый пост)
добавлять в цикл обработки

Application->ProcessMessages();
PM MAIL   Вверх
Iwan777
Дата 13.5.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.5.2007

Репутация: нет
Всего: нет



Частично решило проблему, но при сворачивании и разворачивании программы, строка снова пропадает или если окно программы перекрыть другим окном, а потом активизировать снова, то в строке опять ничего нет.
PM MAIL   Вверх
HappyLife
Дата 14.5.2007, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: 4
Всего: 8



Iwan777, Вставляй это в цикл длительного выполнения программы.
PM MAIL   Вверх
Klin
Дата 14.5.2007, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Iwan777, выложи исходник, скорее всего проблема не в этом. Я как только на формой не измывался и ждал 1 час, но надпись не изчезла smile


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Iwan777
  Дата 15.5.2007, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.5.2007

Репутация: нет
Всего: нет



Цитата(HappyLife @  14.5.2007,  11:03 Найти цитируемый пост)
Вставляй это в цикл длительного выполнения программы

пробовал, не помогает!

Всем спасибо за помощь. Решил применить кардинальный способ. А именно сделал следующее:
1. Создал глобальную переменную status типа string
2. В коде программы меняю её значение на необходимое сообщение.
status="Данные сохранены";
3. После этой строки пишу StatusBar1->SimpleText=status.c_str();
И так везде, где необходимо изменить сообщение статусной строки
4. Самое главное. В событие OnPaint формы добавляю следующее:
SendMessage(StatusBar1->Handle, WM_SETTEXT, 0, (LPARAM)status.c_str());

Видимо StatusBar в Buildere криво работает раз приходится так извращаться.
PM MAIL   Вверх
Klin
Дата 15.5.2007, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1938
Регистрация: 7.10.2002
Где: Краснодар

Репутация: 20
Всего: 25



Iwan777, повторяю, у меня этой проблемы не возникало, выложите исходник или хотя бы алгоритм.


--------------------
Я человек - попробуйте обвинить меня за это.
PM MAIL   Вверх
Iwan777
Дата 15.5.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.5.2007

Репутация: нет
Всего: нет



программа подсчитывает число вхождений символов, пар и троек символов. Это фрагмент кода, подсчитывающий тройки символов
Код

//-----------------три символа----------------------------------------------------
        ProgressBar1->Position=0;
        status="Подсчёт числа вхождений троек символов";
        StatusBar1->SimpleText=status.c_str();
        Application->ProcessMessages();
    for(int i=0;i<34;i++)
    {
           for(int j=0;j<34;j++)
           {
        for(int k=0;k<34;k++)
        {
            c3[i][j][k]=0;
        }
           }
    }
    ifstream infile3(filename,ios::in|ios::binary);
    infile3.seekg(0);

    while(infile3)
    {
           infile3.get(ch3);
           if (ch3=='ё'||ch3=='Ё'){ch3='е';}
           cn3=cm3;
           cm3=ck3;
           ck3=ch3;

           for (int i='а',j='А',g=0;i<='я',j<='Я',g<32;i++,j++,g++)
           {
               for(int m='а',k='А', v=0;m<='я',k<='Я',v<32;m++,k++,v++)
               {
                  for(int q='а',w='А', z=0;q<='я',w<='Я',z<32;q++,w++,z++)
            {
                         if ((cn3==i||cn3==j)&&(cm3==m||cm3==k)&&(ck3==q||ck3==w)){c3[g][v][z]++;break;}
                        }

           }   }
           Application->ProcessMessages();
           ProgressBar1->Position++;
        }
         infile3.close();
   Application->ProcessMessages();
   status="Файл проанализирован, сохраните результаты работы!";
   StatusBar1->SimpleText=status.c_str();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.