Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Array timer, stringgrid hilft mir (https://www.delphipraxis.net/104325-array-timer-stringgrid-hilft-mir.html)

Feuerwehrmann90 2. Dez 2007 15:54

Re: Array timer, stringgrid hilft mir
 
ich verzweifel noch !!!

ich hab jetzt versucht die scheiße do zumchen un was geht gar nix
holt das scheiß array un werft es in de tone ich versteh gar nix
einfach der letzte scheiß is das array do tabelle un timmer han ich mir beigebracht aber array verisst es ich werd am beste moin nach der 4 stund krank dann muss ich die arbeit ent schirebn
so
:pale:

sry my ausdrucksweise aber ich bin genervt von dem scheiße

DeddyH 2. Dez 2007 16:01

Re: Array timer, stringgrid hilft mir
 
Blöde Frage: Du weißt aber, was ein Array ist?

Feuerwehrmann90 2. Dez 2007 16:04

Re: Array timer, stringgrid hilft mir
 
em mehr oder weniger es soll angellcih zahlen oder so was speichern in einem bestimtm beieich den mann festelgt
aber ich bekomm das nicht angewnandrt =(

patti 2. Dez 2007 16:08

Re: Array timer, stringgrid hilft mir
 
Vielleicht hilft dir das weiter: klick

Ist ein Tutorial über Arrays und andere "Komplexe Datentypen".

P@Tti

Feuerwehrmann90 2. Dez 2007 16:17

Re: Array timer, stringgrid hilft mir
 
du sei mir bitte net böse aber damit komm ich ar nicht zurecht

kannst du mir das vlt in paar einfachen sätzen erklären`?

wie das gehen soll?`

DeddyH 2. Dez 2007 16:20

Re: Array timer, stringgrid hilft mir
 
Dann sag ich mal ganz doof: ein Array ist eine "Kette" von Daten desselben Typs. Hier gibt es 2 Geschmacksrichtungen:
- dynamisches Array: keine festgelegte Größe, diese muss immer wieder neu definiert werden, wenn Elemente hinzugefügt oder gelöscht werden
- statisches Array: festgelegte Größe, d.h. es ist von vornherein bekannt, wieviele Elemente enthalten sind

In Deinem Fall würde ich ein statisches Array definieren (mit 60 Elementen). Nun hast Du das Problem, dass Du noch nicht weißt, ob alle Elemente bereits gemessen wurden. Also reicht IMHO ein elementarer Datentyp (z.B. double) hier nicht aus. Also ein Ansatz für die Definition eines Datentyps, der als Array-Element dienen soll:
Delphi-Quellcode:
type TElement = record
  Messwert: double; //der eigentliche Messwert
  gemessen: Boolean; //wurde bereits gemessen? Ist von Belang, solange keine 60 Messwerte vorliegen
end;
Nun definierst Du das eigentliche Array.
Delphi-Quellcode:
var MessArray: array[0..59] of TElement; //60 Elemente, beginnend bei 0
Zum Programmstart setzt Du alle Werte initial auf 0.
Delphi-Quellcode:
FillChar(MessArray, SizeOf(MessArray), 0);
So, wenn der Timer feuert, machst Du Folgendes: Du kopierst (von hinten nach vorn) den Vorgängerwert auf den aktuellen Wert.
Delphi-Quellcode:
for i := High(MessArray) downto Low(MessArray) + 1 do
  MessArray[i] := MessArray[i-1];
Dadurch rutschen alle Messwerte "nach hinten", und Du kannst den neuen Wert als erstes Element (Index 0) eintragen (dabei das Setzen von "gemessen" nicht vergessen). Nun musst Du das Ganze nur noch in einer weiteren Schleife im StringGrid darstellen (und hierbei wieder auf "gemessen" achten ;)).

Ich hoffe, diese Hilfestellung reicht Dir aus.

patti 2. Dez 2007 16:29

Re: Array timer, stringgrid hilft mir
 
[ROTER KASTEN - ICH POSTE TROTZDEM MAL]

So schwer ist das gar nicht:

Zunächst definierst du ein Array:

Delphi-Quellcode:
MeinArray : array[0..10] of integer
Dieses Feld speichert jetzt 11 integer-Werte (also Zahlen). Diese einzelnen Zahlen sprichst du mit

Delphi-Quellcode:
MeinArray[0]
bis
Delphi-Quellcode:
MeinArray[10]
an und kannst dadurch Zahlen-Werte setzen (da du ja ein Integer-Array hast).
Beispiel:

Delphi-Quellcode:
MeinArray[0] := 115;
MeinArray[1] := 234;
Du besitzt also 11 (von 0 bis 10) integer-Werte, die im Grunde nichts anderes sind als wie wenn du folgendes definieren würdest:

Delphi-Quellcode:
Zahl1 : integer;
Zahl2 : integer;
Zahl3 : integer;
//...
Allerdings würde dies bei vielen Werten (60) sehr umständlich und unübersichtlich werden (für dein Vorhaben wäre das beinahe unmöglich)!
Durch die Zahl, die in eckigen Klammern angegeben wird (z.B. [0]) greifst du auf die einzelnen Werte zu.

Als kleine Hilfe noch zu deiner Aufgabe:

Folgendes definierst du im private-Bereich deiner Form:

Delphi-Quellcode:
i : integer;
Messwerte : array[0..60] of Double;
Und das brauchst du im Timer-Event:

Delphi-Quellcode:
Messwerte[i] := random(1000)/100-25;
inc(i);
if i > 60 then i := 0;
Der Code ist noch nicht ganz vollständig, sollte dir aber schonmal weiterhelfen. Bei Fragen einfach fragen ;-)

Hoffe, ich konnte etwas helfen
P@Tti

Feuerwehrmann90 2. Dez 2007 16:34

Re: Array timer, stringgrid hilft mir
 
danke ihr 2 ich frage eh immer

aber wie kann ich amchen das der wie in emier aufgabe bestimmt immer etwas einem arry speicher tut?
also ein zufallszahl?

DeddyH 2. Dez 2007 16:35

Re: Array timer, stringgrid hilft mir
 
Zitat:

Zitat von patti
Delphi-Quellcode:
Messwerte : array[0..60] of integer;

Das sind aber 61 Elemente ;)

patti 2. Dez 2007 16:42

Re: Array timer, stringgrid hilft mir
 
Ok, stimmt. Hab in der Schnelle nicht drangedacht ;-)

Müsste also korrekt heißen:

Delphi-Quellcode:
Messwerte : array[0..59] of Double;
;-)

@Feuerwehrmann90:
Das Timer-Event in meinem Post vorher macht genau das: Es speichert in das Array den Wert, den random liefert. Random ist die Zufallsfunktion, die einen zufälligen Wert liefert. Damit diese funktioniert musst du z.B. im OnCreate des Forms
Delphi-Quellcode:
randomize;
aufrufen.

random(1000) liefert Werte von 0 - 1000. Dieser Wert wird dann durch 100 geteilt, es entstehen also Werte von 0 bis 10. Anschließend wird von dieser Zahl wiederum 25 abgezogen, dadurch entstehen Werte von -25 bis -15 (so wie in deiner Aufgabe verlangt).

P@Tti


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:58 Uhr.
Seite 2 von 6     12 34     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz