AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array timer, stringgrid hilft mir

Ein Thema von Feuerwehrmann90 · begonnen am 1. Dez 2007 · letzter Beitrag vom 7. Dez 2007
 
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#7

Re: Array timer, stringgrid hilft mir

  Alt 2. Dez 2007, 13:21
ich gebe jetzt auch nochma meinen senf dazu
wobei ich einen leicht anderen lösungsweg gehen würde.
ich würde die messwerte in einem array speichern und nur zur ausgabe in das stringgrid schreiben.
erstens is das (meiner meinung nach) bequemer und zweitens steht in der aufgabenstellung ja auch, dass ihr arrays verwenden sollt.

du kannst einen globalen array von fließkomma werten erstellen und dort dort die messwerte dann später speichern.
Messwerte: array of Double; im ontimer event vom timer spielt sich dann alles ab (die beiden knöppe stellen timer.enabled nur auf true bzw false - an/aus).

hier prüfst du halt ob du schon 60 messwerte hast. dann mußt du ja von vorne anfangen (soweit ich das verstanden hab).
wenn du 60 werte erreicht hast setzt du einfach die größe vom array auf 0. dadurch sind dann alle alten messwerte weg.
Delphi-Quellcode:
  if length(Messwerte) >= 60 then
  begin
    setlength(Messwerte, 0);
    ...
  end;
hier sollte man dann evtl noch die zeilen anzahl des stringgrids wieder zurücksetzen (sieht vll besser aus ^^).

danach holst du dir einen messwert vom zufallsgenerator
Delphi-Quellcode:
  randomize; //zufallsgenerator initialisieren
  messwert := RandomRange(-1500, -2500) / 100;
hierdurch erhälst du messwerte im bereich von -25 bis -15 (der zufalls generator gibt eine ganzzahl zwischen -1500 und -2500 aus z.B. -1813. diese wird dann durch 100 geteilt. so bekommste dann z.B. -18,13).

dann erweiterst du deinen messwerte array um ein element(mit setlength) und speicherst in dem neuen feld deinen aktuellen messwert
Delphi-Quellcode:
  setlength(Messwerte, length(Messwerte)+1);
  Messwerte[high(Messwerte)] := messwert;
high(Messwerte) gibt das höchste element (in diesem fall das neu angefügte) des arrays an.
length(Messwerte) gibt die gesamt länge an. da dynamische arrays von 0 zu zählen beginnen ergibt bei einem array mit z.B. 20 element
length(Messwerte) = 20, jedoch high(Messwerte) = 19

dann erweiterst du dein stringgrid um eine reihe und schreibst deinen messwert in die entsprechende celle.
das aktuelle datum kriegst du so
DateTimeToStr(now); da du das ganze nun in einem array hast kannste bequem fertige delphi funktionen benutzen um das minimum/maximum zu ermitteln.
Delphi-Quellcode:
  minimum := MinValue(Messwerte);
  maximum := MaxValue(Messwerte);
nur den durchschnitt mußte meines wissens von hand ausrechnen.
du läufst einfach in einer schleife deinen array durch (von 0 bis high(Messwerte)) addierst da alle werte.
danach teilst du diese summe durch die anzahl messwerte (length(Messwerte))

danach kannste dann einfach die werte in die 3 editboxen speichern
Delphi-Quellcode:
  edit1.Text := FloatToStr(minimum);
  edit2.Text := FloatToStr(maximum);
  edit3.Text := FloatToStr(durchschnitt);
die beschriftung von dem stringgrid wirste ja wohl hinkriegen, ne?
als hilfe: Stringgrid1.Cells[spaltenindex, zeilenindex] := 'Ein String';
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz