Einzelnen Beitrag anzeigen

BigAl

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

AW: SetStyle verursache Exception (gelöst)

  Alt 2. Mai 2022, 20:06
Ich habe mal versucht dieses Problem nachzustellen, da ich auch in meinem aktuellen Projekt den Style zur Laufzeit ändern kann.
Aber bei mir kann die Caption so lang sein wie ich will (>300 Zeichen), da passiert nichts, keine Exception. Ich habs auch bei mehreren Forms geprüft. Mein Projekt ist 32bit und läuft von XP bis Win10.
Das ist halt das Problem wenn man so einen Fehler melden will. Es passiert halt meist nur in einer ganz bestimmten Konstellation. Und mein Projekt kann ich nicht ohne weiteres an Emba geben (zumal es der Firma und nicht mir gehört). Fakt ist, dass der Fehler ab einer Caption-Länge von 72 Zeichen auftritt. Zu dem Zeitpunkt ist nur das Hauptformular mit einem Main-Menu und ein Datenmodul aktiv, welche lediglich eine Datenbank-Connection enthält, welche aber noch nicht aktiv ist.

Der Start im Hauptprogramm sieht also so aus:

Delphi-Quellcode:
begin
  {$IFDEF DEBUG}
  ReportMemoryLeaksOnShutdown := True;
  {$ENDIF}

  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.Title := 'xxx xxxx xxxxxxxx';
  Application.CreateForm(TMSData, MSData);
  Application.CreateForm(TfrmMain, frmMain);
  Application.Run;
end.
Im Hauptformular (TfrmMain) wird auch nichts außergewöhnliches gemacht. Ich linke ca. 10 Styles mit der Applikation. Hatte aber auch schon weniger versucht.

Hier mal der Call Stack:
2022-05-02-20_58_16-bestpractice-delphi-11-vcl.forms-%5Bstopped-thread-27048%5D-%5Bbuilt%5D.png

Und hier knallts:
2022-05-02-21_00_13-bestpractice-delphi-11-vcl.forms-%5Bstopped-thread-27048%5D-%5Bbuilt%5D.png

Wie gesagt: Es passiert nur, wenn der Caption des Hauptformulars 72 Zeichen oder mehr hat.

Ich habe auch versucht es mit einem der Demo-Programme von Delphi zu reproduzieren. Da Funktioniert es komischerweise problemlos. Sowas zu melden ohne es mit einem Beispiel belegen zu können ist nach meiner Erfahrung sinnlos. Die aktuelle Applikation kann ich nicht weitergeben, da die meiner Firma gehört und viel Firmen Know-How enthält.
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)
  Mit Zitat antworten Zitat