Das wurde zwar schon gepostet, aber nochmal: Du brauchst 2 Methoden, Randomize (einmalig aufzurufen, initialisiert den Zufallsgenerator) und Random. Sagen wir mal, Du rufst Randomize im OnCreate-Ereignis auf, das reicht. So, nun muss der neue Wert zufällig zwischen -15.00 und -25.00 liegen. Nun könnten wir Random 2 mal aufrufen: mit Range für den Vorkommaanteil und einmal ohne für den Nachkommaanteil. Einfacher wäre es so:
- die Differenz zwischen -25 und -15 beträgt 10, das ist die anzugebende Range. Für die 2 Nachkommastellen multiplizieren wir diese mit 100, kommen also auf 1000.
- unser unteres Limit ist 15, multipliziert mit 100 also 1500, das muss dazuaddiert werden.
- nun noch das Vorzeichen umdrehen und durch 100 dividieren, dann sollten wir im gültigen Wertebereich landen (wenn ich keinen Denkfehler habe)
Übertragen auf mein Beispiel hieße das
Delphi-Quellcode:
var Neuerwert: TElement;
begin
Neuerwert.Messwert := -((Random(1000) + 1500) / 100);
Neuerwert.gemessen := true;
//hier nun die von mir beschriebene Schleife zum Verschieben
...
//nun an Stelle 0 einfügen
MessArray[0] := Neuerwert;
end;
[edit] Falsche Dopplung korrigiert [/edit]