En anden mulighed kunne være at lave et array, som indeholder
omregningsfaktorer
for de forskellige enheder, og så anvende propertien 'ListIndex' på hver
combo boks som index til dette array, for på den måde at få fat i netop de to
aktuelle omregningsfaktorer, og så bruge dem i en simpel formel.
Et lille eksempel er nok på sin plads:
Lad os sige at hver combo boks indeholder følgende:
"Millimeter" (ListIndex = 0)
"Centimeter" (ListIndex = 1)
"Meter" (ListIndex = 2)
Så laver vi et array med omregningsfaktorer (med millimeter som grundlag):
Faktor(0) = 1 (1 millimeter = 1 millimeter)
Faktor(1) = 10 (1 centimeter = 10 millimeter)
Faktor(2) = 1000 (1 meter = 1000 millimeter)
Så hedder formlen i al sin enkelthed:
Resultat = Værdi * Faktor(Combo1.ListIndex) / Faktor(Combo2.ListIndex)
Hvis vi f.eks. skal omregne 7 centimeter til meter, så vælges følgende af
brugeren på skærmbilledet:
Combo1.ListIndex = 1
Combo2.ListIndex = 2
Værdi = 7
Indsætter vi nu tallene i formlen får vi følgende:
Resultat = 7 * Faktor(1) / Faktor(2) =>
Resultat = 7 * 10 / 1000 =>
Resultat = 0,07
Fordelen ved at opbygge programmet på denne måde er bl.a., at det ikke fylder
ret meget og er nemt at vedligeholde, f.eks. hvis man vil udvide det med nye
enheder.
Hastigheden er desuden uafhængig af antallet af enheder, det er den ikke
hvis man anvender 'Select Case'.
Typisk vil man opbygge arrayet 'Faktor' i Form_Load, så er det gjort
én gang for alle.
--
Posted via Mailgate.ORG Server -
http://www.Mailgate.ORG