Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ProgressBar  (Прочитано 15484 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Oleg
Гость
« : 14-11-2003 07:48 » 

Как привязать ProgressBar к определенному процессу. В моем случае, я выполняю запрос, который долго выполняэтся и поэтому нужно как-то визуализировать то что выполняэтся запрос.
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #1 : 14-11-2003 10:18 » 

Создай окно в этом процессе - диалоговое, и там поставь прогресс бар...
Посылай из текущего процесса данные в это окно, и высчитывай позицию прогресс.

Надеюсь нет необходимочсти говорть что окно должно быть не модальное.
Толкь овопрос - а как это относится к .NET  :?:
Записан

А птичку нашу прошу не обижать!!!
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #2 : 14-11-2003 10:25 » 

Мож вместо прогресс изменять вид курсора, намного проще
Записан

I Have Nine Lives You Have One Only
THINK!
Oleg
Гость
« Ответ #3 : 14-11-2003 11:21 » 

Проблема возникла в С#, вот я в С# и пишу, если я что то не правильно сделал извините, объясните пожалуйста мою ошибку и я больше так не буду  :?
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #4 : 14-11-2003 11:56 » 

Oleg, ну тогда упоминай просто в вопросе , на чем пишешь, а то абстрактно все...

А в C# конкретно не скажу, хотя идеология по идее остается та что я сказал. НЕемодельное окно диалога без caption и в нем прогресс бар контроль принимающий нужное значение, в процентах например.
Записан

А птичку нашу прошу не обижать!!!
Thinker
Гость
« Ответ #5 : 15-11-2003 16:58 » 

Смысл Прогресс-Бара - дать понять пользователю "когда же это безобразие кончиться"  8). Для этого в первую очередь твой процесс должен тебе как-то сообщать что-же в нем происходит.
Если эта проблема решена - создай форму, в нее поставь тот самый прогресс бар, и меняй его position на процент завершенной работы. Если твой процесс это на самом деле твой-же thread, то проще всего (хотя и грязненько с точки зрения технологии) сделать singleton из этой формы, и просто вызывать соответствующую функцию.
Импровизация на тему:
Код:
class ProgressForm : Form
{
    static ProgressForm g_Instance;
static ProgressForm()
{
     g_Instance = new ProgressForm();
}
 
    static public ProgressForm Instance { get { return g_Instance; }}
    public int Position
   {
     get
    {
        return m_ProgressBar.Pos;
    }
    set
   {
      InternalSetPos(value);
   }
   }
 
   protected delegate void InternalSetPosDelegate(int pos);
   protected void InternalSetPos(int pos)
  {
     if(InvokeRequired)
    {
        Invoke(new InternalSetPosDelegate(InternalSetPos),new object[] { pos } );
        return;
    }
 
    m_ProgressBar.Pos = pos;
    }
  }
}
И так далее, и тому подобное  Улыбаюсь
Прошу прощения за индентацию.
« Последнее редактирование: 21-11-2007 15:57 от Алексей1153++ » Записан
Oleg
Гость
« Ответ #6 : 16-11-2003 12:45 » new

Как создать сам процесс? Этот процес исполняэт запрос, который возвращает 42000 записей в dataGrid. И вот мне нужно по мере выполнения запроса в прогресбаре это все показать.
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #7 : 17-11-2003 09:36 » 

Если не ошибаюсь, то инструкция SELECT не может возвращать значения об обработке. У нее есть только два значения - "начало выборки" и "завершение выборки"
Записан

I Have Nine Lives You Have One Only
THINK!
ErnEE
Гость
« Ответ #8 : 17-11-2003 10:39 » 

Цитата: Oleg
Как создать сам процесс? Этот процес исполняэт запрос, который возвращает 42000 записей в dataGrid. И вот мне нужно по мере выполнения запроса в прогресбаре это все показать.

Niu... mozhesh libo pered zaprosom vypolnit' zapros na Count(*) i uznat' skol'ko tam vsego zapisej budet... libo vstavit' etot count v glavnyj select... scityvat' rezultaty DataReaderom... i po mere scityvanija obnovliat' statusbar.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines