Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > ProgressBar


Автор: ura5 12.9.2007, 15:47
Есть Форма1 (в ней идет запись строк в таблицу но оракл) и на ней кнопка Button1.Надо при нажатии этой кнопки вызвать небольшую по размерам Форма2 и в ней запустить ProgressBar,чтобы он был (протекал) до тех пор,пока идет запись строк в таблицу на Форма1 (пока выполняется цикл).

Форма1
Код
[b]
    while (!ADOQuery2->Eof)
    {
        ADOQuery1->Insert();
        ADOQuery1->FieldByName("CODER")->AsString = ADOQuery2->FieldByName("VIDRT")->AsString;
        .....................
        ADOQuery1->Post();
        ADOQuery2->Next();
    } 
    
 [/b]

Автор: Lazin 12.9.2007, 16:01
Код

    while (!ADOQuery2->Eof)
    {
        .......
        ProgressBarForm->Bar->Position = counter;
        counter++;
        Application->ProcessMessages();
    } 


Подразумевается что существует форма ProgressBarForm на которой лежит TProgressBar по имени Bar, ну и перед началом цикла её создали и показали.

Добавлено @ 16:03
Еще нужно знать заранее количество итераций цикла, чтобы нормально установить диапазон прогрес бара.

Автор: ura5 12.9.2007, 16:07
Что такое Bar ,counter ?
Слабо знаю язык

Автор: Rodman 12.9.2007, 16:13
Цитата(ura5 @  12.9.2007,  16:07 Найти цитируемый пост)
Что такое Bar

это и есть твой ProgressBar

ProgressBarForm - это форма на которой он лежит

Код

ProgressBar1->Max=ADOQuery2->RecordCount;
while (!ADOQuery2->Eof)
    {
        ADOQuery1->Insert();
        ADOQuery1->FieldByName("CODER")->AsString = ADOQuery2->FieldByName("VIDRT")->AsString;
        .....................
        ADOQuery1->Post();
        ADOQuery2->Next();
        ProgressBar1->Position+=1;
        Application->ProcessMessages();
    } 

думаю так понятнее

Автор: ura5 13.9.2007, 10:36
тоже работает:
Код
       
Form2->Show();
        Form2->ProgressBar1->Max = ADOQuery2->RecordCount; 
        Form2->ProgressBar1->Position = 0;
        while
        {
          ............
          ADOQuery2->Next();
         ++Form2->ProgressBar1->Position;
         Application->ProcessMessages();

        }


RORMAN.LAZIN.СПАСИБО!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)