PageControl Daten werden nicht aktualisiert

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

PageControl Daten werden nicht aktualisiert

Beitrag von Johannes »

Hallo Forum,

ich habe (mal wieder) ein Problem das mich nun schon einige Zeit beschäftigt:
Meine kleine Animation läuft recht gut (http://www.lazarusforum.de/viewtopic.php?f=55&t=9372).
Nun wollte ich mein Programm um eine Auswertung via TChart erweitern. Dazu habe ich "TPageControl" verwendet.
In meiner Animation wird ein Winkel (0-360°) über einen Timer erzeugt. Diesen Wert kann ich auf einem anderen TabSheet (Auswertung) vom PageControl anzeigen lassen und im TChart verwenden. Die anderen Werte, es geht um 2 Analogwerte welche innerhalb von proceduren berechnet werden deren Aufruf im OpenGLControlPaint erfolgt, werden nicht aktualisiert obwohl die Animation, auf dem eigenen Tabsheet im Hintergrund, läuft. Diese läßt sich auch von dem Tabsheet "Auswertung" über Buttons starten und stoppen.
Nur wenn ich die Seite mit der, laufenden, Animation wähle und dann zurück zur Seite "Auswertung" schalte sehe ich statische, aber veränderte, Werte.
Wie kommt es dazu?

Danke und Gruß

Hannes

Michl
Beiträge: 2511
Registriert: Di 19. Jun 2012, 12:54

Re: PageControl Daten werden nicht aktualisiert

Beitrag von Michl »

Johannes hat geschrieben:Nur wenn ich die Seite mit der, laufenden, Animation wähle und dann zurück zur Seite "Auswertung" schalte sehe ich statische, aber veränderte, Werte
Wie und wann (durch welches Event) lässt du dir die Werte anzeigen?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection;  

Johannes
Beiträge: 174
Registriert: Sa 9. Jan 2016, 09:30

Re: PageControl Daten werden nicht aktualisiert

Beitrag von Johannes »

Hinter der Form "Steuerung" steckt nur eine Unit. Ich benutze, als Zeitbasis für die Animation den Standarttimer. Im Timer-Event stehen meine Zuweisungen um die TEdits auf dem anderen TabSheet zu füllen.
Mit dem Wert "Winkel" funktioniert das auch, nur die anderen Werte werden, wie beschrieben, nicht aktualisiert.

Ich habe folgende Vermutung:
Im "OpenGLPaint" rufe ich diverse proceduren für die Teile meiner Animation auf. In diesen erfolgen auch einige Berechnungen und die Ergebnisse aus diesen Berechnungen machen mir Probleme.
Ich nehme an, dass das OpenGLPaint nur funktioniert wenn die Ausgabe des OpenGL-Bildschirms den Focus hat. Daher werden diese Berechnungen nur aktuelle Ergebnisse liefern wenn die Animation sichtbar ist.
Das ist aber nicht mehr der Fall wenn ich die Seite im PageControl wechsel.
Da mich die Berechnungen an den verschiedenen Stellen meiner Unit sowieso störte bin ich dabei eine eigene procedure "Berechnungen" zu basteln. Dann funktioniert auch die Anzeige meiner Werte einwandfrei.

Danke

Hannes

Antworten