Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Record-Variable in Klasseninstanz setzen

  Alt 9. Dez 2012, 13:27
Ich vermute mal, daß das AfterScroll-Event vor dem DataModuleCreate ausgelöst wird (passiert, wenn das DataSet zur DesignTime auf Active gesetzt ist). Damit wäre die Instanz von MainZu noch nicht erstellt und es kommt zu der Schutzverletzung.
Das hatte ich zu allererst überprüft: Die Datenbankverbindung wird erst nach dem Start in OnShow hergestellt. Ich achte immer darauf, daß die Verbindungskomponente (hier ADOConnection zur Verbindung mit einem MsSQL-Server) nicht zufällig auf connected := true steht, weil ich vielleicht zuvor im Feld-Editor eines Datasets war und dort was manipuliert habe. Das ist bei mir schon Routine, vor dem Betätigen der F9-Taste, wenn ich zuvor im Datenmodul zugange war, die Connect-Komponente zu überprüfen. Beim Setzen auf false werden ja auch alle offenen Datasets inaktiv ... Außerdem würden, wenn deine Vermutung zuträfe, auch die anderen Proceduren wie z.B. Set_StatusBar, die ja funktionieren, eine Zugriffsverletzung auslösen.

So wie ich's nun gelöst habe, ist es sowieso viel übersichtlicher: Die Variablen, die andere Units bzw. Klassen über den Zustand der Datenbank informieren sollen, lege ich im Datenmodul ab. Von dort holt sich die Klasse TMainTools alle notwendigen Informationen.
  Mit Zitat antworten Zitat