Einzelnen Beitrag anzeigen

BigAl

Registriert seit: 6. Sep 2008
Ort: Kehl
504 Beiträge
 
Delphi 12 Athens
 
#1

Neustart der Applikation aus Stabilitätsgründen...

  Alt 28. Aug 2022, 19:43
Hallo zusammen,

ich entwickle momentan eine Applikation, welche im Dauerbetrieb stabil laufen muss. Weiterhin sind ein helles und ein dunkles Design gefordert. Da es nach dem Umschalten des Styles immer wieder zu Fehler in der VCL kommt habe ich mich für einen etwas unkonventionellen Weg entschieden. Nachdem der Benutzer das Design ändert (sollte eigentlich nicht oft vorkommen) starte ich die Applikation neu.

Dazu habe ich im Hauptformular folgenden Destructor geschrieben:

Delphi-Quellcode:
destructor TfrmMain.Destroy;
var
  AppName, AppParam: string;
begin
  inherited;

  if SkinChangeRestart then
  begin
    AppName := ParamStr(0);
    AppParam := SKIN_RESTART_PARAM;
    ShellExecute(0, nil, PChar(AppName), PChar(AppParam), nil, SW_SHOW);
  end;
end;
Bei der Konfiguration löse ich das ganze nach einer Sicherheitsabfrage wie folgt aus:

Delphi-Quellcode:
          
  SkinChangeRestart := True;
  Application.MainForm.Close;
Das funktioniert, aber ich bin mir nicht sicher, ob das der richtige Weg ist oder ob man das anders lösen sollte.

Ehe ein Hinweis auf "löse das VCL Problem" kommt: Ich habe ja bereits einen häufig auftretenden Fehler gemeldet (RSP-38928). Ich werde bei Gelegenheit noch einen weiteren Melden der immer wieder auftritt. Mit dem Debuggen solcher Fehler bin ich überfordert bzw. dazu fehlt mir die Zeit. Das die Anwendung in Forms dynamisch erzeugte eingebettete forms und frames enthält macht das ganze nicht leichter. Aber ehe das nicht alles seitens VCL stabil ist brauche ich eine Lösung. Die vorliegende Anwendung wird z.B. ab Oktober in Mexiko und später noch in Brasilien und den USA laufen. Da kann ich nicht mal eben hinfahren...
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat