AGB  ·  Datenschutz  ·  Impressum  







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

Session ist nicht definiert

Ein Thema von Walter Landwehr · begonnen am 2. Jan 2021 · letzter Beitrag vom 3. Jan 2021
Antwort Antwort
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.905 Beiträge
 
Delphi 12 Athens
 
#1

AW: Session ist nicht definiert

  Alt 2. Jan 2021, 15:00
Bevor Dein Programm das tun kann, setzt Du das Formular aber schon auf NIL, was aber nicht einer Freigabe entspricht. Alles, was nach dieser Zuweisung noch irgendwie mit dem Formular interagieren muss, wird scheitern.
Nein, es wird nur Self auf nil gesetzt, also die lokale Referenz auf das Formular. Das hat genau gar keine Wirkung, da Self in der Methode danach gar nicht mehr verwendet wird.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Session ist nicht definiert

  Alt 2. Jan 2021, 15:42
Also habe jetzt alles ausprobiert. Es muss an dem Thread liegen den ich benutze. Dieser ist für den Google Kalender da.
Die Verbindung wird so getrennt.
Delphi-Quellcode:
procedure Tdata.DataModuleDestroy(Sender: TObject);
begin
  ncal.Free;
  con.Close;
  con.Connected := False;
end;
Um das Hauptformular habe ich FormClose so verändert.
Delphi-Quellcode:
procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  timMain.Enabled := false;
  tmMedikament.Enabled := false;
  foriginalMenuStream.Free;
  dmMain.Threadbeenden;
  Action := caFree;
  TForm(Self) := nil;
  Application.Terminate;
  exit;
end;
Aber alle Versuche sind gescheitert. Der Debugger läuft bis zum Ende durch

Delphi-Quellcode:
begin
// IB_Session.IB_GetClientLibNameFunc := GetFBClientLibName;
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TdmMain, dmMain);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.
Erst hier zum Schluss erscheint diese Meldung.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.905 Beiträge
 
Delphi 12 Athens
 
#3

AW: Session ist nicht definiert

  Alt 2. Jan 2021, 15:58
Und wie sieht der Stacktrace zu der Meldung aus?
Wie sieht die Routine Threadbeenden aus?

Und wo wird das Datenmodul freigegeben? Gar nicht selbst? Dann passiert der Fehler vielleicht dabei, weil das erst ganz am Ende passiert, wenn schon viel aufgeräumt ist.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Session ist nicht definiert

  Alt 3. Jan 2021, 10:50
Hier wird der Thread beendet:
Delphi-Quellcode:
procedure TdmMain.Threadbeenden;
var I : Integer;
begin
(* Calendersync *)
  if CalSyncThread = nil then Exit;
  if CalSyncThread.Worker <> nil then begin
    try
      CalSyncThread.Worker.stopped := true;
      CalSyncThread.Terminate;
    except;
    end;
  end;
  while Assigned(CalSyncThread) do begin
   Application.ProcessMessages;
   if FAbbrechen then Break;
  end;
end;
Ich bin ein bisschen weiter gekommen und weiß jetzt es liegt an IBObjects. Bin aber noch nicht dahintergekommen was die Meldung zu bedeuten hat. Werder mal den Support von IBObjects konsultieren.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Session ist nicht definiert

  Alt 3. Jan 2021, 12:18
Komme nicht weiter. Habe mal einen madexcept Fehlerbericht beigefügt. siehe Anlage
Angehängte Dateien
Dateityp: txt bugreport.txt (33,6 KB, 7x aufgerufen)
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.905 Beiträge
 
Delphi 12 Athens
 
#6

AW: Session ist nicht definiert

  Alt 3. Jan 2021, 13:20
Bei der Freigabe des Threads (im Destruktor) zerstörst du auch das Datenmodul dmData, führst dort aber bei der Zerstörung noch ein ExecSQL aus?

Das finde ich ein wenig spät. Wie wäre es, wenn du den Thread schon vor dem end des Projektquelltextes deinitialisierst?
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Session ist nicht definiert

  Alt 3. Jan 2021, 14:27
Ja genau das ist der Fehler:

Delphi-Quellcode:
procedure Tdata.DataModuleDestroy(Sender: TObject);
begin
  ncal.Free;
  con.Close;
  con.Connected := False;
  con.Free;
end;

destructor Tdata.Destroy;
begin
{  if (not CheckForOtherInstance) then
  begin
    CLEARWORKINGINFO.Prepared := True;
    CLEARWORKINGINFO.ExecSQL;
  end;}

  fGoogleCalendars.Free;
  fCalendarsToSync.Free;
  fGCalHelper.Free;
  fNxHelper.Free;
  fNxCalendars.Free;
  fRecInfAccess.Free;
  inherited;
end;
Aber wo führe ich den CheckForOtherInstance aus. Wenn ich das im Destroy ausführe bleibt das Programm stehen. Und warum ging es unter Delphi 10.1 ohne Probleme. Aber das müssen wir nicht weiter verfolgen, ich habe Delphi 10.1 deinstalliert.
Walter Landwehr
Mfg

Walter
  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 20:50 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