AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Form.Close funktioniert manchmal nicht

Ein Thema von Flippo · begonnen am 23. Sep 2008 · letzter Beitrag vom 26. Sep 2008
 
Flippo

Registriert seit: 26. Sep 2004
111 Beiträge
 
Delphi 2005 Personal
 
#1

Form.Close funktioniert manchmal nicht

  Alt 23. Sep 2008, 13:59
Hallo,

also mein Problem ist folgendes. Ich lese Daten aus Textdateien ein und speichere diese dann in einer Datenbank. (Das funktioniert ohne Fehlermeldungen und die Daten sind auch da wo sie sein sollen.) Den Fortschritt dieses Einleseprozesses gebe ich auf einer Form Namens frmProgress aus. Leider schließt sich frmProgress manchmal trotz fehlerfreiem Einlesevorgang nicht, wenn das Einlesen beendet ist.(Der Einlesevorgang wird auch beendet, in frmProgress wird "Fertig" ausgegeben, bis zu dieser Zeile läuft der Code also auch durch)
Der Abbrechen Button, der frmProgress normalerweise auch schließen sollte hat auch keine Wirkung, wenn der Fehler auftritt.
Ich konnte leider auch keine Struktur hinter den Fehlern erkennen, bei ein und demselben Datensatz schließt sich die Form manchmal und manchmal eben nicht.

Da der Einlesevorgang recht lange dauert und man manchmal das Fenster minimiert usw. hatte ich zuerst den Verdacht das es damit zusammenhängen könnte. Aber auch da konnte ich keine festen Zusammenhänge feststellen.

Habt ihr Ideen woran es liegen könnte? Habt ihr irgendwelche Erfahrungen mit verrückt erscheinenden nicht schließbaren Forms, die weiterhelfen könnten?

(Ich habe bei meiner Suche Themen mit "CloseQuery" gefunden, was wohl verhindern kann, dass eine Form geschlossen wird, aber da sind alle Werte so wie sie sein sollen)

Danke schonmal an alle die sich damit beschäftigen

MfG

Flippo

Hier der Code:

Delphi-Quellcode:
procedure TfrmMain.ImportData(Sender: TObject);
var
.
.
begin
  database.enableStandFiler(false);
  if frmDataImport.showModal(false) = mrOk then begin
    frmProgress.Show('Importiere Daten...', false, true, true, true, self);
    frmProgress.addLine('Lese Daten...');
    .
    .
    .
    frmProgress.addLine('Analysiere und schreibe Daten in die DB...');
    application.ProcessMessages;
    .
    .
    .
    //Routinen die Daten in die Datenbank schreiben
    .
    .
    .
    database.openDataSets(actProject.actStand, actProject.actBereich);
    self.pageControlDatenChange(Sender);
    frmProgress.addLine('Fertig.');
    application.BringToFront;
    application.ProcessMessages;
    sleep(1500);
  end;
  frmProgress.close;
end;


procedure TfrmProgress.show(caption:String; show_bar, show_memo, show_btnAbort,beep: boolean; Sender: TControl);
begin
  inherited show;
  self.mySender := sender;
  self.mySender.Enabled := false;
  self.ModalResult := mrNone;
  .
  .
  .
  //unwichtige Zuweisungen a la Memo1.visible:=false;
  .
  .
  .
end;


procedure TfrmProgress.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  self.mySender.Enabled := true; // Aufrufer wieder Aktivieren
  if signalEnd then beep;
end;
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:35 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