AGB  ·  Datenschutz  ·  Impressum  







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

Record-Variable in Klasseninstanz setzen

Ein Thema von Perlsau · begonnen am 9. Dez 2012 · letzter Beitrag vom 10. Dez 2012
 
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Record-Variable in Klasseninstanz setzen

  Alt 9. Dez 2012, 17:09
Wird denn die Variable von TMain_Zugriff User_Tab : TTab_User; initialisiert?
Inzwischen befindet sich die Variable nicht mehr in TMain_Zugriff, sondern in TDatMod (Datenmodul). Die Initialisierung hat sich jedoch nicht geändert, sie erfolgt nach wie vor aus der Unit MainTools heraus (mit DatMod. statt wie zuvor mit MZGF.), die alle Datenbank-Aktionen des Hauptformulars übernimmt:

Delphi-Quellcode:
procedure TMainTools.Einstellungen_Setzen;
CONST
     N = '0';
VAR
   i,z,
   Links,
   Oben,
   Breit,
   Hoch : Integer;
   Maximiert : Boolean;
   Aus : String;

begin
     IF NOT DatMod.Aset_Benutzer.Active THEN EXIT;

     Rec_User.User_Index := DatMod.Aset_Benutzer.FieldByName('Idx_Benutzer').AsInteger;
     Rec_User.Name := DatMod.Aset_Benutzer.FieldByName('Name').AsString;
     Rec_User.Pass := DatMod.Aset_Benutzer.FieldByName('Passwort').AsString;

     Links := DatMod.Aset_Benutzer.FieldByName('Links').AsInteger;
     Oben := DatMod.Aset_Benutzer.FieldByName('Oben').AsInteger;
     Breit := DatMod.Aset_Benutzer.FieldByName('Breit').AsInteger;
     Hoch := DatMod.Aset_Benutzer.FieldByName('Hoch').AsInteger;
     Maximiert := DatMod.Aset_Benutzer.FieldByName('Maximiert').AsBoolean;

     MZGF.Set_FormMain(Links, Oben, Breit, Hoch, Maximiert);

     IF NOT DatMod.Aset_UserTabs.Active THEN EXIT;
     IF NOT DatMod.Aset_UserTabs.Locate('Idx_User_Tabs',Rec_User.User_Index,[]) THEN EXIT;

// Filmtitel - Initialisierung von User_Tab
     DatMod.User_Tab.Titel_Index := DatMod.Aset_UserTabs.FieldByName('Titel_Index').AsInteger;
     DatMod.User_Tab.Titel_SortIndex := DatMod.Aset_UserTabs.FieldByName('Titel_SortIndex').AsInteger;
     DatMod.User_Tab.Titel_SortOrder := NOT DatMod.Aset_UserTabs.FieldByName('Titel_SortOrder').AsBoolean;
     DatMod.User_Tab.Titel_SortText := DatMod.Aset_UserTabs.FieldByName('Titel_SortText').AsString;

     DatMod.Aset_Titel.Locate('Idx_Titel',DatMod.User_Tab.Titel_Index,[]);
     Sortieren_FilmTitel(DatMod.User_Tab.Titel_SortIndex);

     z := MZGF.Spalten_Filmtitel -1;
     FOR i := 0 TO z DO
     BEGIN
          Aus := IntToStr(i);
          IF i < 10 THEN Aus := N + Aus;
          Aus := 'Tab_Titel_' + Aus;
          MZGF.Set_Spalte_FilmTitel(i,DatMod.Aset_UserTabs.FieldByName(Aus).AsInteger);
     END;
end;
Was ich nicht verstanden hatte: Wieso funktionierte ein ähnliches Konstrukt in einer anderen Klasse (und Unit) vom Hauptformular aus und das im ersten Post gezeigte Konstrukt vom Datenmodul aus nicht?

Das AfterScroll-Ereignis im Datenmodul wird bereits vor dem Setzen der Werte in MainTool ausgelöst, nach dem ersten Dataset.Open (korrekt: DatMod.User_Tab.Active := true) wird es garantiert ausgelöst – so dürfte der nicht-initialisierte Zustand der Variablen aber dennoch keine Rolle spielen, da der Wert der Variablen ja nicht ausgelesen, sondern gesetzt wird ... Das war es doch, worauf deine Frage zielte, oder?

Ich glaub ich muß für heute mal aufhören, sitze schon seit 5:30 hier ...
  Mit Zitat antworten Zitat
 


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 11:56 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-2025 by Thomas Breitkreuz