Man darf innerhalb einer Klasse nicht auf die globale Instanzvariable (der eigenen Klasse) zugreifen!
Das ist nur ein (aber sehr schwerwiegender) Fehler in deinem Sourcecode.
Delphi-Quellcode:
var
Startbildschirm: TStartbildschirm;
implementation
procedure TStartbildschirm.StartTimerTimer(Sender: TObject);
begin
Start.show;
// FALSCH !!!!!!
// Wer sagt denn, dass die Variable "Startbildschirm" wirklich auf ein gültiges Objekt zeigt ?
// Es könnten auch mehrere Objekte der Klasse TStartbildschirm existieren
// auch dann führt das zu schweren Fehlern
Startbildschirm.Visible := false;
// Richtig !
Visible := false; // eigentlich ganz einfach
// if Start.Visible = true then // Schlecht
// Richtig: Boolsche Ausdrücke werden direkt verwendet
// Vergleich mit True kostet mehr Rechenzeit und kann unter bestimmten Umständen
// zu Fehlern führen
if Start.Visible then
begin
// Startbildschirm.StartTimer.Enabled := false ;
StartTimer.Enabled := false ; // siehe oben
end;
end;