[ Markotron @ 08.09.2006. 15:03 ] @
Poz

Zanima me jedna stvar, napravio sam u C# program koji ispisju liniju svaki put na drugom mjestu. Zelim napravit da mi ispise liniju te zatim u text box napise broj, zatim nacrta drugu liniju, i u tekst box napise drugi broj. Kad sve to poksam napravit prvo mi se nacrtaju sve linije pa tek mi se onda ispiu brojevi. Nerazumijem zasto??? NPR:


for (int x = 1; x <= 360; ++x)
{
mjera.Text = x.ToString() + "°";
grp.DrawLine(olovka, 170, 180, (float)(Math.Cos(x * Math.PI / 180) * 130 + 170), (float)(Math.Sin(x * Math.PI / 180) * 130 + 180));
Thread.Sleep((11 - brzina.Value)*10);

}
[ draganc__ @ 08.09.2006. 19:09 ] @
isprobao sam ovaj tvoj kod, ubacio ga kod sebe u paint metodu, pa ne znam sta da ti kazem, ovaj nacin crtanja potpuno zauzme resurse, znaci na formi je stalno pjescani sat, kad probas ugasiti pojavi se not responding. Cini mi se da ovako neces moci rijesiti problem jer zbog stalnog re-painta ekrana nista od kontrola se ne moze refreshovati. Mozda da probas crtati na neki drugi nacin, ili da napravis poseban Thread samo za crtanje, stvarno ne znam, nadam se da ce jos neko javiti...
[ draganc__ @ 08.09.2006. 19:17 ] @
Opet ja. Malo sam cackao po netu. Pogledaj ovaj clanak http://www.codeproject.com/csharp/lineditor.asp.
Ukratko covjek kaze da ako imas puno linija ili teske bitmape program se vrlo sporo izvrsava zbog silnog crtanja. Pa onda primjenjujes trik da refreshuje samo promijenjene dijelove uz pomoc Region i Invalidate metoda.
[ Markotron @ 09.09.2006. 11:23 ] @
ja sam problem rijesio sto sam, sam refrešao tekst box funkciom refresh! sada radi dosta doboro