Wątek zablokowany 2016-03-20 01:53 przez somekind.

Nieprzyjemne dla oka zmiana wielkości formy

0

Witam. Mam napisaną formułę zmiany wielkości Formy_1. Niestety podczas zmiany wielkości formy jest bardzo nieprzyjemny efekt przejścia dla oka. Jak temu zaradzić?

Poniżej przykład kodu:

Na formie ma zdeklarowane:
Form1->Width=845; - forma od uruchomienia ma ten rozmiar oraz jest ustawione aby forma była na środku ekranu (poScreenCenter) ustawione w Object Inspektorze.
Następnie pod CheckBoxem mam taki kod do zmiany ekranu.

if (CheckBox2->Checked)
{
Form1->Width=1265;
Form1->Position=poScreenCenter;
}
else
{
Form1->Width=845;
Form1->Position=poScreenCenter;
}

Dodatkowo ma ustawiony program na to aby forma była zawsze na wierzchu- poniżej kod:

if (CheckBox5->Checked)
Form1->FormStyle=fsStayOnTop;
else
Form1->FormStyle=fsNormal;

I tutaj także jest jakieś dziwne mruganie okna nieprzyjemne dla oka.

Z góry dziękuję za pomoc.

0

Jak zaokrąglić liczbę co 0,5 do najbliższej połówki. Np. 9,4 da mi 9,5, np. 9,6 także da mi 9,5 a 9,8 da mi 10.
Z góry dziękuję za pomoc.

0

Przetestuj to jeszcze, ale coś takiego przyszło mi do głowy na szybko:

double a = 9.74F;
double b = (int)Math.Round(a / 0.5F);
double c = b * 0.5F; // c = 9.5

double d = 9.76F;
double e = (int)Math.Round(d / 0.5F);
double f = e * 0.5F; // f = 10

Metodę sobie napiszesz sam, tu masz przykład jak można do tego podejść.

0

dzięki za odpowiedź

0

Działa. Do mojego programu zrobiłem to tak:

double d = 9.76;
int e = RoundTo(d / 0.5,-0);
double f = e * 0.5; // f = 10

Edit3->Text=FloatToStr(f);

double g = 9.74;
int h = RoundTo(g / 0.5,-0);
double l = h * 0.5; // c = 9.5
Edit4->Text=FloatToStr(l);

Dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1