Einzelnen Beitrag anzeigen

sunny-andy

Registriert seit: 11. Nov 2007
26 Beiträge
 
#1

Fehler beim Zugriff auf Steuerlemente aus d. Konstruktor

  Alt 28. Dez 2007, 15:23
Hallo,

ich habe momentan einen (für mich) sehr merkwürdigen Fehler im Programm.
Ich erstelle einen Frame, in welchem ein TPageControl liegt. Dieses enthält zur Entwicklungszeit bereits 7 TabSheets.

Nach dem Erstellen des Frames möchte ich einige TabSheets unsichtbar machen:

Delphi-Quellcode:
constructor TFrameKarteikarten.Erzeugen;
begin
  inherited Create(nil);
end;

procedure TFrameKarteikarten.DeaktiviereTabs;
begin
  pcListen.Pages[0].TabVisible := false; <--- Hier tritt der Fehler auf
end;

...
FrameKarteikarten := TFrameKarteikarten.Erzeugen;
FrameKarteikarten.DeaktiviereTabs;
Er meldet eine "Out of bounds (7)"-Exception.

So nun habe ich eben ein paar Haltepunkte gesetzt, etwas herumgespielt und nun geht es doch wieder.

Der Konstruktor sieht nun so aus und der Fehler ist nun weg:
Delphi-Quellcode:
constructor TFrameKarteikarten.Erzeugen;
begin
  inherited Create(nil);
  DeaktiviereTabs;
end;
Auch wenn ich es wieder zurückändere, geht es nun ohne Exception.
Kann es sein, dass im Konstruktor das TabSheet noch nicht ganz erzeugt worden ist? Verhält sich der Compiler anders, wenn ich im Konstruktor auf Eigenschaften eines Steuerelements zugreife?
Ich verstehe jedenfalls nicht, woran es liegt...

Vielleicht hat ja jemand einen Tipp
  Mit Zitat antworten Zitat