Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
die Aussage "relativ groß" ist relativ. Ich hatte mal einen Kunden, der sprach von sehr großen Pumpen. Ich stellt mir dann so eine Pumpe in einer Machinenhalle vor. Im Endeffekt passten die Pumpen in eine Hand. Ein paar Jahre erzählte mir ein anderer Kunde etwas von kleinen Pumpen. Ich war dann schon auf kleine Pumpen konditioniert und stellte mir etwas vor, das so ein paar Milliliter pro Stunde fördert. Ok, diese sehr kleinen Pumpen wogen bei dem Kunden so 10kg.
(frei erfunden)
Außerdem ist mir nicht klar, was du wirklich machen willst. Einen String kann man doch nicht in einem Graph darstellen. Das Bildchen sagt auch nicht viel, aber lässt zumindest vermuten, dass die Daten in einer Tabelle darstellst und der Benutzer in der Tabelle einzelne Werte ändert.
Aber erzähle doch erst einmal etwas zum Thema Dateigröße (Anzahl Spalten, Anzahl Zeilen und die Größe der Datei).
700000 x 40 x 8 ... ok, das kann schon ein bisschen unangenehm werden. Wenn du 700000 Werte sehr viele Plots (wieviele?) in einem XY Graph darstellst, dann ist das auch etwas über dessen Sinnhaftigkeit nachgedacht werden sollte. Ich würde da auch einmal über eine sinnvollere Aufteilung/Darstellung nachdenken.
Wenn der Anwender einen Eintrag in einer Tabelle ändern will, dann muss er irgendwie in diese Zelle zum editieren kommen und er muss eine Taste auf der Tastatur betätigen. Da kannst du jetzt ansetzen und über diesen Umweg die Zellenposition ermitteln. Im Endeffekt sind das aber alles nur Krücken, die mehr oder weniger gut funktionieren.
Wenn du anstatt einer Tabelle eine "Multicolumn Listbox" verwendest, dann kannst du dem Benutzer auch erlauben die Zellen zu editieren. Die Listbox liefert die Position frei Haus. Nachteilig dabei ist, dass die Bedienung unangenehmer ist, wie bei einer Tabelle.
Um bei einer Tabelle zu bleiben. Prinzipiell kannst du auch kleinere Stücke darstellen. Ich kenne zwar die größe deines Bildschirms nicht, aber 700000 Zeilen passen wohl kaum auf deinen Bildschirm. Du musst dann die Scrollbar selber handhaben und nur das in die Tabelle laden, was auch benötigt wird. Ein bisschen eine Krücke ist das zwar auch, aber damit kannst du zumindest schnell herausfinden, welche Zelle geändert wurde.
ich habe jetzt eine schnellere Möglichkeit gefunden den Index der Arrayelemente auszulesen.
Siehe Screenshot im Anhang.
Dazu habe ich drei Events erzeugt.
Maus tritt in den Bereich des 2DStringArrays
Maus verlässt den Bereich des 2DStringArrays
Maustaste gedrückt (Screenshot) Dieser Event wird nur dann ausgeführt wenn der Mauszeiger im 2DStringArray Bereich ist.
Auf diese Art und Weise geht es viel schneller als über die andere Variante, weil ich nicht über Wertänderung einen Event auslöse.
Der nächste Schritt wird sein das geänderte Element über den ermittelten index auszupicken in ein numerisches Element umzuwandeln und über den index im numerische 2D Array für die Diagrammdarstellung zu ersetzen.
funktioniert wunderbar.
Viel schneller so wie ich es haben wollte.
Die Kurvendarstellung im XY Graph verlangsamt das Ganze natürlich immer noch.
Ich schaue mal was man da tun kann.
Wenn du Ideen hast, bin für alles offen.
Gruß
simcum
05.03.2023, 09:04 (Dieser Beitrag wurde zuletzt bearbeitet: 06.03.2023 12:39 von Martin.Henz.)
wenn du nur die Mausevents verwendest, dann mag das ok für dich sein und dann ist es erst einmal ok.
du solltest dir nur bewusst sein, dass sich die Tabellenwerte auch ohne Maus verändern lassen und du das gar nicht feststellst.
Bezüglich dem Graphen musst du herausfinden, was da so viel Zeit kostet und dort ansetzen. Eventuell geht deutlich Zeit für die Umwandlung der Strings in Double drauf. Da wäre es u.U. besser mehr mit den Double-Werten zu arbeiten und am besten gleich in dem Format, wie das für den Graphen benötigt wird.