Rysowanie linii w VCL

0

Witam,

mam problem z programem, otóż ma on wczytać liczby z pliku i wskazać je na 'mierniku', taki woltomierz. Program działa, tylko mam m.in problem z kasowaniem linii, program ma wczytać liczbę, wskazać ją, odczekać chwilę, skasować i wskazać następną, mój nie kasuje. Wyświetla się kilka linii, co może być nie tak?

	ifstream plik;
	plik.open("..\\dane.txt");
	for (int i = 0 ; i < 6  ;i++)
	{
		plik>>prad[i];
		Kat1[i]=9*prad[i];

	}
	plik.close();


for (int i=0; i < 6; i++)
{
XWskaznika=DlugoscWskaznika*Sin(Kat1[i]*3.14/180); //liczy katy
YWskaznika=DlugoscWskaznika*Cos(Kat1[i]*3.14/180);
//wskaz poczatek rysowania
WskazowkaBlue->Canvas->MoveTo(0,WskazowkaBlue->Height);
//policz koniec rysowania, przeliczyc wspolrzedna Y
YWskaznika=WskazowkaBlue->Height-YWskaznika;
//narysuj na ekranie koniec wskazowki
WskazowkaBlue->Canvas->LineTo(XWskaznika,YWskaznika);
TloWoltomierza->Canvas->CopyRect(Prostokat,WskazowkaBlue->Canvas,Prostokat);
}
delete WskazowkaBlue;
WskazowkaBlue=NULL;
}

pzdr,

0

Musisz przerysowywać razem z tłem.

0

Czyli co do fora mam wrzucic?

	BitmapaTlo=new Graphics::TBitmap;
	BitmapaTlo->LoadFromFile("..\\Tlo.bmp");

??

0

Teoretycznie można ale może ten obrazek stworzysz i załadujesz przy tworzeniu formatki, jeden raz na początku.
Generalnie nie powinno to być w pętle, jeżeli jest w pętli to nie zamkniesz formatki dopóki pętla się nie skończy.
Użyj timer'a który podmienia pewne dane - składowe formatki, oraz wywołuje invalidate dla kontrolki na której rysujesz.
W zdarzeniu OnPaint kontrolki rysujesz tylko jeden stan.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.