Takze Master si zelal vidiet timovu pracu, tak davam "do placu" moje zistenia. To je ta peknejsia verzia, na menej pekna je ta, ze uz na to nemam nervy.

VB neovladam dostatocne na to, aby som presne vedel, co mi ktora funkcia vrati.
A uz ma prestalo bavit stale cumet do helpov na msdn. Pri niektorych funkciach su tie helpy dost neuplne, takze niektore pouzite funkcie som uplne nepochopil.
Takze sem som sa dostal (myslim, ze som nic neprehliadol):
1.)
Module1.hodnota := (DateAndTime.Hour(DateAndTime.Now) * 3);
Do premennej hodnota ulozi aktualna hodina (cislo 0-23) a vynasobi sa tromi.
2.)
Module1.udaj := Module1.hodnota;
Module1.udaj := (Math.Round(((Module1.udaj + DoubleType.FromString(Strings.Format(Conversion.Val(string.Concat(Strings.LTrim('&H4D'),'&')),'') )) as Double)) as Int64);
Module1.udaj := (Module1.udaj * 61);
Module1.udaj := LongType.FromObject(ObjectType.DivObj(Module1.udaj, Conversion.Fix(Strings.Format(Conversion.Val(string.Concat(Strings.LTrim('&H73'), '&')), ''))));
Module1.udaj := (Math.Round(((Module1.udaj + (DoubleType.FromString(Strings.Format(Conversion.Val(string.Concat(Strings.LTrim('&H74'), '&')), '')) * DoubleType.FromString(Strings.Format(Conversion.Val(string.Concat(Strings.LTrim('&H74'), '&')), '')))) as Double)) as Int64);
Module1.udaj := (Module1.udaj * 101);
inc(Module1.udaj, 114);
num1 := 1;
repeat
inc(Module1.udaj, (Module1.udaj * 3));
inc(num1)
until (num1 > 10)
Tato cast ma za ulohu vypocitat to "spravne" cislo. Tu som sa zasekol na tych funkciach... U niektorych z nich neviem, co mi vratia.
3.)
Module1.mechtle := (Math.Round(((((116 + DoubleType.FromString(self.Label2.Text)) * (52 + DoubleType.FromString(self.Label3.Text))) + (67 + DoubleType.FromString(self.Label4.Text))) as Double)) as Int64);
Module1.mechtle1 := (Math.Round(((((77 + DoubleType.FromString(self.Label5.Text)) * (97 + DoubleType.FromString(self.Label6.Text))) + (115 + DoubleType.FromString(self.Label7.Text))) as Double)) as Int64);
Module1.mechtle2 := (Math.Round(((((116 + DoubleType.FromString(self.Label8.Text)) * (101 + DoubleType.FromString(self.Label9.Text))) + (114 + DoubleType.FromString(self.Label10.Text))) as Double)) as Int64)
Tu sa generuje cisielko zadane cez tie "ovladace" v okne. Strucny prepis by mal byt asi takyto:
mechtle = ( (116 + [hodnota 1.ovladaca]) * (52 + [hodnota 2.ovladaca]) ) + (67 + [hodnota 3.ovladaca])
mechtle1 = ( (77 + [hodnota 4.ovladaca]) * (97 + [hodnota 5.ovladaca]) ) + (115 + [hodnota 6.ovladaca])
mechtle2 = ( (116 + [hodnota 7.ovladaca]) * (101 + [hodnota 8.ovladaca]) ) + (114 + [hodnota 9.ovladaca])
4.)
if ((((DoubleType.FromString(Strings.Mid(StringType.FromLong(Module1.udaj), 1, 5)) - Module1.mechtle) = 0)
and ((DoubleType.FromString(Strings.Mid(StringType.FromLong(Module1.udaj), 6, 5)) - Module1.mechtle1) = 0))
and ((DoubleType.FromString(Strings.Mid(StringType.FromLong(Module1.udaj), 11, 3)) - DoubleType.FromString(Strings.Mid(StringType.FromLong(Module1.mechtle2), 1, 3))) = 0))
then
Module1.rozhodnuti := true
Tu je rozhodovanie, ci su zadane hodnoty spravne... Pointa je asi tato:
Pre spravne riesenie je nutne splnit 3 podmienky.
- Z Module1.Udaj sa urobi retazec. Z tohoto retazca sa vezme prvych 5 znakov. Tie sa znovu prevedu na cislo. Od tohoto sa odpocita Module1.mechtle. Vysledok MUSI BYT 0.
- Z Module1.Udaj sa urobi retazec. Z tohoto retazca sa vezme cast od 6 znaku po 10 znak (vcetne). Ta sa znovu prevede na cislo. Od tohoto sa odpocita Module1.mechtle1. Vysledok MUSI BYT 0.
- Z Module1.Udaj sa urobi retazec. Z tohoto retazca sa vezme cast od 11 znaku po 13 znak (vcetne). Ta sa znovu prevede na cislo.
Z Module1.Mechtle2 sa urobi retazec. Z tohoto retazca sa vezmu prve 3 znaky. To sa znovu prevede na cislo.
Tieto cisla sa MUSIA ROVNAT!!! (Odcitaju sa a vysledok musi byt 0.)