Показать сообщение отдельно
Старый 29.06.2012, 20:22   #44
partizanes
Пользователь
 
Аватар для partizanes
 
Регистрация: 15.03.2010
Адрес: Беларусь,Витебск
Сообщений: 93
Сказал(а) спасибо: 97
Поблагодарили 36 раз(а) в 11 сообщениях
partizanes На верном пути
Отправить сообщение для partizanes с помощью ICQ Отправить сообщение для partizanes с помощью Skype™
По умолчанию

Код:
void Form1::_DownloadProgressChanged(System::Object ^sender, System::Net::DownloadProgressChangedEventArgs ^e)
{
    DateTime startTime = static_cast<DateTime>(e->UserState);

    Int64 brSize = e->BytesReceived;
	Int64 tbtrSize = e->TotalBytesToReceive;
	Int64 ProgressPercentage = brSize * 100 / (tbtrSize);

	Int32 speed = (brSize / 1024) / (DateTime::Now - startTime).TotalSeconds;

	String^ drawString = Convert::ToString(ProgressPercentage) + "% Speed:"+Convert::ToString(speed)+" Кб/с";
	System::Drawing::Font^ drawFont = gcnew System::Drawing::Font( "Arial",8.25 );
	SolidBrush^ drawBrush = gcnew SolidBrush( Color::Black );
	PointF drawPoint = PointF(324/2 - 10, 23 / 2 - 7);

	progressBar1->Refresh();
	progressBar1->Value = e->ProgressPercentage;
	progressBar1->CreateGraphics()->DrawString( drawString, drawFont, drawBrush, drawPoint );
	
}
работает ,но мерцает , периодически исчезает текст и появляется через пол секунды .

сложные расчеты?backgroundworker?

add глючит на вин7
на 2003 не глючит;



debug намекает что строчка пропадает при

Код:
 	while(_WebClient->IsBusy)
 	{
 		Application::DoEvents();
 	}
Добавлено через 1 час 7 минут
перенес
Код:
	while(_WebClient->IsBusy)
	{
		String^ drawString = Convert::ToString(ProgressPercentage) + "% Speed:"+Convert::ToString(speed)+" Кб/с";
		System::Drawing::Font^ drawFont = gcnew System::Drawing::Font( "Arial",8.25 );
		SolidBrush^ drawBrush = gcnew SolidBrush( Color::Black );
		PointF drawPoint = PointF(324/2 - 10, 23 / 2 - 7);
		progressBar1->CreateGraphics()->DrawString( drawString, drawFont, drawBrush, drawPoint );
		Application::DoEvents();
	}
перестало мигать

Код:
void Form1::_DownloadProgressChanged(System::Object ^sender, System::Net::DownloadProgressChangedEventArgs ^e)
{
    DateTime startTime = static_cast<DateTime>(e->UserState);

     Int64 brSize = e->BytesReceived;
	 Int64 tbtrSize = e->TotalBytesToReceive;
	 ProgressPercentage = brSize * 100 / (tbtrSize);

 	 speed = (brSize / 1024) / (DateTime::Now - startTime).TotalSeconds;

	progressBar1->Refresh();
 	progressBar1->Value = e->ProgressPercentage;
	
}
__________________
Когда-нибудь на оффе поставят Mangos...

Последний раз редактировалось partizanes; 29.06.2012 в 19:46.
partizanes вне форума   Ответить с цитированием