AGB  ·  Datenschutz  ·  Impressum  







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

[Splashscreen] Zugriffsfehler

Ein Thema von BullsEye · begonnen am 18. Aug 2008 · letzter Beitrag vom 18. Aug 2008
Antwort Antwort
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#1

[Splashscreen] Zugriffsfehler

  Alt 18. Aug 2008, 14:23
Hallo Leute,
ich habe für mein Programm einen Splashscreen (Ladefenster wie auch immer...) erstellt. Aber wenn ich das Programm ausführe erhalte ich immer einen Zugriffsfehler (s.Anhang)!
Funktionieren tuts trotzdem! Doch hab ich nicht immer lust erst irgendwo auf 'OK' klicken zu müssen um das Programm nutzen zu können.

Delphi-Quellcode:
program DesktopUhr6;

uses
  Forms,
  Main in 'Main.pas{Form1},
  Einstellungen in 'Einstellungen.pas{Form2},
  Hilfe in 'Hilfe.pas{Form3},
  laden in 'laden.pas{frmLaden};

{$R *.res}

begin
     frmLaden := TfrmLaden.Create(Application);
  try
    frmLaden.Show;
    frmLaden.Refresh;
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.CreateForm(TForm2, Form2);
    Application.CreateForm(TForm3, Form3);
  finally
    frmLaden.InitializationDone := True;
  end;
  while frmLaden <> nil do
  Application.ProcessMessages;
  Application.Run;
end.
Vllt ist hier ein Fehler drinne?!


Weiterer Code den ich auf dem Form zum Laden habe:
Delphi-Quellcode:
procedure TfrmLaden.SetInitializationDone(const Value: Boolean);
begin
  FInitializationDone := Value;
  Close;
end;

procedure TfrmLaden.FormCreate(Sender: TObject);
begin
frmLaden.Color := clBlack;
frmLaden.DoubleBuffered := true;
end;

procedure TfrmLaden.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  Close;
end;

procedure TfrmLaden.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := (not Timer1.Enabled) and FInitializationDone;
end;

procedure TfrmLaden.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
  frmLaden := nil;
end;
UNd auf dem Hauptformular ist folgendes:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Sleep(300);
  frmLaden.Refresh;
end;
Ich hab mal die (unfertige) EXE angehängt, vllt hilft euch das ja auch was.
Miniaturansicht angehängter Grafiken
error_874.jpg  
Angehängte Dateien
Dateityp: exe desktopuhr_140.exe (617,5 KB, 6x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: [Splashscreen] Zugriffsfehler

  Alt 18. Aug 2008, 14:49
Delphi-Quellcode:
procedure TfrmLaden.FormCreate(Sender: TObject);
begin
 Color := clBlack;
 DoubleBuffered := true;
end;
Versuch mal die "frmLaden"-Angabe im FormCreate wegzulassen. Du solltest in der Klasse nicht auf die globale Variable zurückgreifen sondern wie hier (implizit) auf "Self"!

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von alias5000
alias5000

Registriert seit: 10. Sep 2005
Ort: Heilbronn
268 Beiträge
 
#3

Re: [Splashscreen] Zugriffsfehler

  Alt 18. Aug 2008, 14:57
Zitat von BullsEye:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Sleep(300);
  frmLaden.Refresh;
end;
Mit dem Sleep(300) erreichst du vielleicht, dass dein Timer im Splashscreen ein Schließen der Form veranlasst, bevor das finally aufgerufen wird.
Allgemein würde ich versuchen zu vermeiden, diesen Bug abhängig von der Geschwindigkeit zu machen, mit dem die 3 Forms erstellt werden, da dies abhängig von der Rechnergeschwindigkeit ist!

Gruß
alias5000
Im Interesse der Purierung des germanischen Ideoms ist es opertum den immensen Usus peregrieder Verben auf ein Minimum zu reduzieren.
--> www.lanchat2.de <---
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#4

Re: [Splashscreen] Zugriffsfehler

  Alt 18. Aug 2008, 15:11
Zitat von alias5000:
Mit dem Sleep(300) erreichst du vielleicht, dass dein Timer im Splashscreen ein Schließen der Form veranlasst, bevor das finally aufgerufen wird.
Allgemein würde ich versuchen zu vermeiden, diesen Bug abhängig von der Geschwindigkeit zu machen, mit dem die 3 Forms erstellt werden, da dies abhängig von der Rechnergeschwindigkeit ist!

Gruß
alias5000
Hm naja es ist eig egal, ob ich da 3000 oder 300 hinmache. Aber wenn ich da 3000 bzw 5000, wie ich es vorher hatte hinschreibe, kommt die "LadeAnimation" nicht zur Geltung. Und den Zugriffsfehler macht es auch nicht weg.

Trotzdem danke!
  Mit Zitat antworten Zitat
Benutzerbild von alias5000
alias5000

Registriert seit: 10. Sep 2005
Ort: Heilbronn
268 Beiträge
 
#5

Re: [Splashscreen] Zugriffsfehler

  Alt 18. Aug 2008, 15:13
Und wenn du das Sleep(300) wegmachst? Das meinte ich eigentlich...
Im Interesse der Purierung des germanischen Ideoms ist es opertum den immensen Usus peregrieder Verben auf ein Minimum zu reduzieren.
--> www.lanchat2.de <---
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#6

Re: [Splashscreen] Zugriffsfehler

  Alt 18. Aug 2008, 15:33
Zitat von mirage228:
Delphi-Quellcode:
procedure TfrmLaden.FormCreate(Sender: TObject);
begin
 Color := clBlack;
 DoubleBuffered := true;
end;
Versuch mal die "frmLaden"-Angabe im FormCreate wegzulassen. Du solltest in der Klasse nicht auf die globale Variable zurückgreifen sondern wie hier (implizit) auf "Self"!

mfG
mirage228
-.-
So einfach ist das also... iwie bin ich in letzter Zeit darauf eingestellt, das alles kompliziert muss ^^

Zitat von alias5000:
Und wenn du das Sleep(300) wegmachst? Das meinte ich eigentlich...
Passieren tut da 'nichts' Nur ist der Ladebalken länger da...
Ich habs nu einfach mal ganz weggelassen.
Ich danke euch beiden für die Hilfe!
  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 17:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz