![]() |
AW: VCL-Styles bei Delphi 10.4
und jetzt noch ein Stacktrace, wo genau es im TForm.Create knallt
|
AW: VCL-Styles bei Delphi 10.4
Hallo an Alle.
Dieses Problem hatte Ich auch schon, da dachte ich auch erst an einen Fehler von Delphi. Aller Dings war es nicht so, sondern ich hatte einfach vergessen Delphi 10.4 bekannt zugeben, das ich den Style aus 10.3 verwenden möchte. Also rein in die Projektoptionen den Style dem Project bekannt geben, neu compilieren und fertig. Warum ist das so, wenn Delphi nichts von diesen Style weis, kann es den Style nicht in die Resourcen laden. Somit kracht es beim Start des Programmes, da Delphi den Style aus der Resource laden will. gruß Reinhold |
AW: VCL-Styles bei Delphi 10.4
Zitat:
Ich gehe davon aus, Du hast ein SCM, so dass dies gefahrlos möglich ist. Ein Backup der Original-Sourcen vorher kann natürlich trotzdem nicht schaden. |
AW: VCL-Styles bei Delphi 10.4
Hallo Reinhard,
das ist leider nicht das Problem, ich habe alle Styles entfernt und nochmal neu alle hinzu, aber egal mit welchen Style kommt eine Exception, nur mit dem Windows Style nicht. |
AW: VCL-Styles bei Delphi 10.4
Auf der EKON gelernt, dass es einen oder besser mehrere geile Bugs gibt.
Jedesmal wenn du diese (vielleicht auch egal welche) Option anschaust, mußt du danach alle Haken raus und neu reinmachen, weil Delphi zwar die haken anzeigt, aber es eigentlich vergessen hat. Schön zu sehn auch unten an der ComboBox mit dem aktiven Style, die beim Neuöffnen nur "Windows" drin hat, was "kein Style" heißt. Und während des Öffnens einer Form darf kein globaler Style zugewiesen sein. Nach dem Öffnen und kurzem anzeigen des OhneStyle könnte man einen Style der Form zuweisen und es ging auch irgendwie vorher, aber hab grade nicht genau im Kopf wie das ging und ich muß nochmal kurz los meine Pizza holen, bevor die EKON weitergeht. :oops: |
AW: VCL-Styles bei Delphi 10.4
Hi miteinander,
ich hab gestern Abend Delphi 10.4 mit Patch 1,2,3 deinstalliert und Delphi 10.4.1 installiert. Problem ist weg, alles geht mit den Styles wie zuvor mit 10.3 LG Michi |
AW: VCL-Styles bei Delphi 10.4
Super!
|
AW: VCL-Styles bei Delphi 10.4
Ich häng mich hier mal dran.
Ich habe einen fast identischen Fehler. Beim Setzen des Styles eine Exception. Aber das genaue Umfeld ist jetzt hier nicht so wichtig. Abstürzen tut das Programm an dieser Stelle in der Datei ...21.0\source\vcl\StyleAPI.inc Zeile 10948 neuste Version: Delphi 10.4.1 inkl. Patches Dort ist eine solche Abfrage: if StyleObject <> nil then begin ... mach was end else StyleObject.Draw( ...) !!! Das Objekt ist doch NIL !! Hier der Original Sourcecode
Delphi-Quellcode:
Hab ich gerade einen Aussetzer oder läuft hier was falsch.
if StyleObject <> nil then
begin StyleObject.Active := kwdsActive in AWindow.State; StyleObject.BoundsRect := AWindow.Rect; if (ADPI > DPI_DEFAULT) and (AObject = 'Title') then begin StyleObject := StyleObject.FindObjectByName('Image'); if StyleObject <> nil then begin StyleObject := StyleObject.FindObjectByName('Title'); if StyleObject <> nil then begin R := StyleObject.BoundsRect; R.Bottom := MulDiv(AWindow.ClipRect.Bottom, ADPI, DPI_DEFAULT); SaveBoundsRect := StyleObject.BoundsRect; StyleObject.BoundsRect := R; StyleObject.FStopDrawChilds := True; if (StyleObject.MarginLeft + StyleObject.MarginRight = 0) or (StyleObject.MarginTop + StyleObject.MarginBottom = 0) then begin Buffer := TBitmap.Create; try Buffer.SetSize(R.Width, AWindow.ClipRect.Height); R := Rect(0, 0, Buffer.Width, Buffer.Height); StyleObject.BoundsRect := R; StyleObject.Draw(Buffer.Canvas, R); R := AWindow.ClipRect; R.Bottom := MulDiv(R.Bottom, ADPI, DPI_DEFAULT); DrawStretchBitmap(Buffer, Canvas, R); finally Buffer.Free; end; end else StyleObject.Draw(Canvas, R, ADPI); StyleObject.FStopDrawChilds := False; StyleObject.BoundsRect := SaveBoundsRect; end else StyleObject.Draw(Canvas, AWindow.ClipRect, ADPI); // Hier der Absturz. Bzw. steht hier der Cursor bei der Exception, wenn ich "Anhalten" drücke. StyleObject = nil end else StyleObject.Draw(Canvas, AWindow.ClipRect, ADPI); end else StyleObject.Draw(Canvas, AWindow.ClipRect, ADPI); end; Es ist ja nicht nur eine Stelle im Sourcecode, die genau so geschrieben ist. . |
AW: VCL-Styles bei Delphi 10.4
Der Auslöser ist gefunden.
In dem Style gibt es nicht den Eintrag: Objects - Form - Image - Title (siehe Bitmap-Stil-Designer) Diese Feld fehlt bei allen "Windows modern" Stilen. Und die setze ich ein. Inzwischen kann ich auch zur Laufzeit den Stil nicht mehr wechseln. Bis gestern lief noch alles einwandfrei. Es laufen alle Stile, die das besagte Feld haben, aber alle anderen nicht. Aber das auch erst seit heute. (habe nur die Mainform ausgetauscht.) Teste jetzt nochmal ein Mini-Programm. Aber der merkwürdige Quelltext dort oben ist mir weiterhin suspekt. |
AW: VCL-Styles bei Delphi 10.4
Der Code ist definitiv falsch und er ist auch erst in 10.4 reingekommen, wo die Styles High-DPI unterstützen. Das ist doch einen QP-Eintrag wert.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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