Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Array Probleme (https://www.delphipraxis.net/184586-array-probleme.html)

Chris211183 8. Apr 2015 11:31

AW: Array Probleme
 
Zitat:

Zitat von Mavarik (Beitrag 1296658)
Zitat:

Zitat von Chris211183 (Beitrag 1296657)
Sorry, ja die kommen sehr schnell, einer nach dem anderen.....
und die Echtzeitdarstellung ist auf jeden Fall von Nöten....

Wie kann ich das realisieren ? :gruebel:

Das übersteigt meine programmierkünste bei weitem, befürchte ich

Du hast doch die X-Zeitachse und die Y-Werteachse...

Wie synchronisierst Du die beiden Werte?

Mache ich das nicht in THixHistograph.CalculatePoint View ?

Mavarik 8. Apr 2015 11:40

AW: Array Probleme
 
Zitat:

Zitat von Chris211183 (Beitrag 1296661)
Zitat:

Zitat von Mavarik (Beitrag 1296658)
Zitat:

Zitat von Chris211183 (Beitrag 1296657)
Sorry, ja die kommen sehr schnell, einer nach dem anderen.....
und die Echtzeitdarstellung ist auf jeden Fall von Nöten....

Wie kann ich das realisieren ? :gruebel:

Das übersteigt meine programmierkünste bei weitem, befürchte ich

Du hast doch die X-Zeitachse und die Y-Werteachse...

Wie synchronisierst Du die beiden Werte?

Mache ich das nicht in THixHistograph.CalculatePoint View ?

Nein eigentlich nicht... Hier nimmst Du ja feste Werte Deiner Anzeigenbreite...

Wenn Du Werte von Außen bekommst, brauchst Du ja die Zeiteinheit...

Beispiel: Du hast eine Abtastrate von 40 KHz... Also bekommst Du 40000 werte pro Sekunde... Diese Werte musst Du ja umrechnen auf Bildschirmbreite, damit Du eine stehende Welle hast... (Oder was auch immer da rein kommt)...

Wenn Deine Abtastrate aber variable ist, musst Du wissen wann oder wie schnell die Werte reingekommen sind...
Sonst kommt ja hinten nur Müll raus..

Wenn Du also 40000 Werte pro Sekunde hast, musst Du sicherlich erst mal eine sinnvolle Datenreduktion/Interpolation machen... Oder?

Mavarik

Chris211183 8. Apr 2015 11:49

AW: Array Probleme
 
mhhhhhhhhhh :roll:

Mavarik 8. Apr 2015 13:08

AW: Array Probleme
 
Zitat:

Zitat von Chris211183 (Beitrag 1296675)
mhhhhhhhhhh :roll:

Das habe ich mir gedacht... :-D

Chris211183 9. Apr 2015 09:11

AW: Array Probleme
 
Zitat:

Zitat von Mavarik (Beitrag 1296703)
Zitat:

Zitat von Chris211183 (Beitrag 1296675)
mhhhhhhhhhh :roll:

Das habe ich mir gedacht... :-D

:stupid: nicht lustig, ich kotz hier voll ab :wall:

Der schöne Günther 9. Apr 2015 09:39

AW: Array Probleme
 
Ich glaube bin mir sicher du würdest mehr Hilfe erhalten wenn du dein Problem klar und prägnant beschreiben kannst. Du erzählst irgendetwas von Malen und "externen Werten", im Titel geht es um "Array Probleme" und das einzig konkrete sind zwei Seiten Code die man noch nicht einmal bei sich ausführen kann.

Kannst du einmal in maximal drei Sätzen beschreiben welches konkrete Problem du lösen möchtest?

Vielleicht bin ich auch einfach nicht sonderlich schlau, Mavarik scheint ja verstanden zu haben worum es geht...

Chris211183 9. Apr 2015 09:47

AW: Array Probleme
 
okay, ich versuche das mal...

Ich möchte erst einmal einen Array haben, der mit beliebig vielen "Daten" gefüllt werden kann.
Da ich ja nicht weiß, wieviele "Signale" kommen...
Diese Daten sollen dann visuell in meiner Komponente dargestellt werden. (Funktionsprinzip Oszilloskop)

Dabei ist meine X-Achse die Zeit und meine Y-Achse die Intensität(Amplitude).

in erster Linie habe ich keine Ahnung, wie man soetwas macht, würde es aber gern lernen...
Google und die Hilfe bringen mich nicht weiter....

Klaus01 9. Apr 2015 10:07

AW: Array Probleme
 
.. wie bekommst Du denn die Daten?

a) seriell, allso eine Zeiteinheit nach der anderen
- dann kannst Du den Array (Queue, Schieberegister) von hinten füllen
- ein 1. Zeiteinheit
- dann zweite Zeiteinheit dahinter
- usw.
Dann kannst Du das Bild "langsam" aufbauen
Es verschiebt sich dann von rechts kommend nach links.
Oder du wartest bis Dein Array vollständig gefüllt ist und zeichnest es dann.
Gefüllt ist es dann, wenn alle Daten 40000 bei 40Khz Abtastrate in Deinem Array angekommen sind.

b) einen Buffer mit allen Daten aus mehreren Zeiteiheiten
- mit dem Buffer befüllst Du dann Dein Array
- zeichnest das Array.

Grüße
Klaus

Der schöne Günther 9. Apr 2015 10:10

AW: Array Probleme
 
Ich ignoriere Klaus, der relativ komplexe Sachen wie "wartest bist dein Array gefüllt ist" mit einem Halbsatz abfrühstückt, einfach mal und sage nur was über Array Grundlagen:

Zitat:

Zitat von Chris211183 (Beitrag 1296869)
Ich möchte erst einmal einen Array haben, der mit beliebig vielen "Daten" gefüllt werden kann.

Es gibt zwei verschiedene Arten von Arrays: Statische und dynamische. Bei statischen gibst du an, von wo bis wo:
Delphi-Quellcode:
var
   meinZwölferArray: array[0..11] of Integer;
In das Array passen genau 12 Integer rein. Mavarik ist glaub ich ein Fan von den Dingern, ich habe die in meinem Leben noch nie benutzt.

Die zweite Möglichkeit sind dynamische Arrays: Die sind gut für dich, denn die können so groß werden bis dein Speicher voll ist. Da lässt man die expliziten Größenangaben einfach weg:
Delphi-Quellcode:
var
   meinIntegerArray: array of Integer;
Nach der Deklaration hat das dynamische Array erst einmal die Größe Null. Es passen keine Elemente hinein. Wenn nun 500 Integer hineinpassen sollen musst du sagen
Delphi-Quellcode:
SetLength(meinIntegerArray, 500);
Sagen wir die Integer-Werte stellen einen Absolutwert da (Y-Achse). Der Index (die wievielte Stelle im Array) ist der Wert auf der X-Achse. Um jetzt alle Werte zu nehmen und auszugeben, gehst du so drüber:
Delphi-Quellcode:
var
   meinIntegerArray: array of Integer;
   arrayIndex:   Integer;
begin
   SetLength(meinIntegerArray, 10);
   for arrayIndex := Low(meinIntegerArray) to High(meinIntegerArray) do
      ShowMessage( IntToStr(meinIntegerArray[arrayIndex]) );


Erstmal: Alles klar soweit in Sachen Arrays?

DeddyH 9. Apr 2015 10:14

AW: Array Probleme
 
Etwas ausführlicher (Englisch): http://delphibasics.co.uk/Article.asp?Name=Arrays


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.
Seite 2 von 4     12 34      

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