AGB  ·  Datenschutz  ·  Impressum  







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

VCL-Styles bei Delphi 10.4

Ein Thema von Neumann · begonnen am 8. Jun 2020 · letzter Beitrag vom 20. Feb 2021
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: VCL-Styles bei Delphi 10.4

  Alt 30. Okt 2020, 21:04
und jetzt noch ein Stacktrace, wo genau es im TForm.Create knallt
$2B or not $2B
  Mit Zitat antworten Zitat
Reinhold
(Gast)

n/a Beiträge
 
#12

AW: VCL-Styles bei Delphi 10.4

  Alt 2. Nov 2020, 07:15
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
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

AW: VCL-Styles bei Delphi 10.4

  Alt 2. Nov 2020, 09:01
ich hab schon ein Testprojekt für 10.4 gebaut, das funktioniert.
Mein Programm wo es nicht geht hat ein paar tausend Zeilen und ich hab noch keine Ahnung warum hier eine Exception kommt.
üblicherweise kommt man bei sowas weiter, in dem man das Programm abspeckt. Erstmal großzügig alles rauswerfen, was in OnShow sowieso nicht benötigt wird. Schauen, ob der Fehler weg ist und dann weiter machen. Dabei nicht vergessen, auch Units rauszuwerfen.

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.
Thomas Mueller
  Mit Zitat antworten Zitat
michiww

Registriert seit: 9. Mai 2007
Ort: Franken
17 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: VCL-Styles bei Delphi 10.4

  Alt 3. Nov 2020, 18:09
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#15

AW: VCL-Styles bei Delphi 10.4

  Alt 4. Nov 2020, 13:22
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.
$2B or not $2B

Geändert von himitsu ( 4. Nov 2020 um 18:12 Uhr)
  Mit Zitat antworten Zitat
michiww

Registriert seit: 9. Mai 2007
Ort: Franken
17 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: VCL-Styles bei Delphi 10.4

  Alt 5. Nov 2020, 13:26
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
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.960 Beiträge
 
Delphi 12 Athens
 
#17

AW: VCL-Styles bei Delphi 10.4

  Alt 5. Nov 2020, 21:09
Super!
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
236 Beiträge
 
Delphi 12 Athens
 
#18

AW: VCL-Styles bei Delphi 10.4

  Alt 20. Feb 2021, 12:56
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:
  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;
Hab ich gerade einen Aussetzer oder läuft hier was falsch.
Es ist ja nicht nur eine Stelle im Sourcecode, die genau so geschrieben ist.

.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von t2000
t2000

Registriert seit: 16. Dez 2005
Ort: NRW
236 Beiträge
 
Delphi 12 Athens
 
#19

AW: VCL-Styles bei Delphi 10.4

  Alt 20. Feb 2021, 13:37
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.
Thomas
(Wir suchen eine(n) Entwickler(in) mit Ambitionen später ggf. die Softwarefirma zu leiten)
Aktuell nicht mehr. Aber ab vielleicht 2024/2025 wird das wieder sehr interessant!
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#20

AW: VCL-Styles bei Delphi 10.4

  Alt 20. Feb 2021, 15:49
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.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz