AGB  ·  Datenschutz  ·  Impressum  







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

TJvTimer

Ein Thema von Luckner · begonnen am 4. Okt 2016 · letzter Beitrag vom 5. Okt 2016
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

AW: TJvTimer

  Alt 4. Okt 2016, 17:43
@himitsu
und was hatten wir bezüglich des Schalters Threaded=True angemerkt?
Ist er nun gesetzt oder nicht, wenn nein, dann wird TTimer genutzt und dann ist ShowMessage kein Problem.

Selbst wenn der Schalter gesetzt sein sollte, könnte man das ja mal eben ändern und probieren, wie dann das Verhalten mit ShowMessage ist. Oder?

@Jumpy
Ein Grid kann man (meines Wissens) nicht schließen, sondern nur die dahinterliegende Datenmenge.

Die Namen in DatamodulePlannung.DataModule5.IBDataSetGridPlannung Intepretiere ich mal dahingehend, das irgendwas mit dem Namen DatamodulePlannung über (mindestens) fünf Datenmodule verfügt, wobei das fünfte Datenmodul über ein IBDataSet verfügt, das dem Grid mit den Namen Planung zugeordnet ist.

---

Prinzipiell sollte der ursprüngliche Quelltext eigentlich wie erwartet funktionieren.

Und wenn's mit TJvTimer nicht funktioniert, dann nimmt man halt mal 'nen TTimer und packt dort die Routine ins Ereignis. Ändert sich das Verhalten dann, ist TJvTimer eventuell die Problemursache. Bleibt das Verhalten aber unverändert, dann müsste man mal schauen, was denn da sonst so im Hintergrund schief gehen könnte.

@Luckner:
Die Sichtbarkeit oder Unsichtbarkeit der Frames dürfte kaum eine Auswirkung auf das Ergebnis des Öffnens und Schließens der Datenmenge haben, es wurde lediglich die Stelle im Quelltext verändert, an der der Vorgang ausgeführt wird.
Und wenn man eine Komponente versteckt und dann wieder anzeigt, dann sieht man das in der Oberfläche.

Hat sich durch Deine Änderung denn jetzt das ursprüngliche Problem erledigt?
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: TJvTimer

  Alt 4. Okt 2016, 17:57
Hallo nahpets,

1) habe es auch mit dem TTimer ausprobiert. Ebenfalls kein Erfolg.
2) Es gibt eine Datenmodul und wie aus dem Quellcode abzulesen ist, habe ich natürlich das entsprechende Dataset geschlossen und dann geöffnet (Wie auch im Frame).
3) Problem ist nicht unbedingt erledigt, weil das Geblincke natürlich stört.

Morgen versuche ich mit einem Querry statt Dataset. Möglicherweise funktioniert es besser.

Wenn ich einen Erfolgt erleben sollte, dann werde es hier mitteilen.

Danke, Luckner
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: TJvTimer

  Alt 5. Okt 2016, 12:51
Also es hat mit Querry anstatt Dataset auch nicht funktioniert. Ich belasse es erstmal mit dem Schliessen und Öffnen des Frames. Möglicherweise liegt es am JvDBGrid. Wäre aber dankbar für jeden Lösungsvorschlag.

Gruß, Luckner
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: TJvTimer

  Alt 5. Okt 2016, 13:02
Nutze das JvDBGrid schon seit Jahren, habe bisher noch nicht einmal erlebt, dass mir das was anders angezeigt hat, als ich erwartet habe.

Bei 'nem Close der Datenmenge und 'nem anschließenden Open habe ich immer den dann aktuellen Stand der Daten gesehen.

Meiner Meinung nach dürfte die Wahrscheinlichkeit, dass das JvDBGrid was anders anzeigt, als die Datenmenge enthält, gegen 0 tendieren.
Zumindest kann ich mir momentan keinen Programmzustand vorstellen, bei dem dies möglich sein könnte.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: TJvTimer

  Alt 5. Okt 2016, 13:13
Aber irgenwie funktioniert der Timer nicht mit diesem Grid zusammen. Es zuckt nicht mal beim Schliessen und Öffnen des Datasets.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#6

AW: TJvTimer

  Alt 5. Okt 2016, 13:29
Das liegt aber nicht am Grid.

Bau in dem Timer doch mal hinter dem Close oder vor dem Open jeweils ein Sleep(5000) ein.
Oder irgendwie 'ne andere Warteschleife, so dass man an der Oberfläche die einzelnen Schritte sehen kann.

Wie groß ist denn die Datenmenge?
Wenn's nur ein paar wenige Datensätze sind, kann es durchaus sein, dass man das Schließen und Öffnen an der Oberfläche nicht mitbekommt, weil es einfach zu schnell geht.
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: TJvTimer

  Alt 5. Okt 2016, 14:14
werde ich ausprobieren. Es sind wirklich nicht viele Datensätze. So um die 50-60. Sleep werde ich sofort ausprobieren.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.316 Beiträge
 
Delphi 12 Athens
 
#8

AW: TJvTimer

  Alt 5. Okt 2016, 14:24
Die Oberfläche bekommt das mit. Glaubt's mir ruhig, denn das DataSet ist so nett und informiert die DataSource, die den DataLink, der den DataController und am Ende bekommt auch das Grid umgehend mit, wenn aktualisiert wurde.
(außer bei DisableControls, aber dort wird das im EnableControls nachgeholt)

Aber irgenwie funktioniert der Timer nicht mit diesem Grid zusammen. Es zuckt nicht mal beim Schliessen und Öffnen des Datasets.
Das DataSet hält die Daten, eine DataSource bildet die Schnittstelle zwischen DataSet und DataLink und zuletzt der DataLink dann als Schnittstelle zum DataController des Grids,
der DataController kopiert sich sie Daten aus dem DataSet und stellt sie für das Grid bereit und das Grid läd dann die Daten aus dem DataController.
Weder DataSet, noch DataSource, DataController, DataLink, Grid und vorallem nicht fast die ganze VCL sind threadsave.

Wenn da gleichzeitig das Grid versucht zu lesen/zeichnen, während ein anderer Idiot unsynchronisiert an den Daten rumpfuscht, weil er das DataSet aktuallisiert, dann kommt es nunmal schnell zu eine klitzekleinem Problemchen.

Aber da das keiner kappieren will, bin ich hier raus.
Tschau und viel Glück noch.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 5. Okt 2016 um 14:29 Uhr)
  Mit Zitat antworten Zitat
Luckner

Registriert seit: 28. Nov 2006
Ort: Berlin
418 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: TJvTimer

  Alt 5. Okt 2016, 15:10
Sleep hat auch nichts gebracht.
An himitsu: Wenn ich das Dataset.close mache und so belasse, dann bekommen ich, nach der Timerzeit, ein leeres Grid (mit einer leeren Zeile). Wenn ich aber Datase.close und dan Datase.open, dann müsste das Grid wenigstens zucken. Aber es passiert nichts.
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:05 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 by Thomas Breitkreuz