Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Merkwürdiger TFontDialog (https://www.delphipraxis.net/195891-merkwuerdiger-tfontdialog.html)

Ghostwalker 4. Apr 2018 09:50

Merkwürdiger TFontDialog
 
Servus,

ich hab folgende Funktion (abgespeckt):

Delphi-Quellcode:
function EditFont(AFont:TFont):boolean;
var
  dlg : TFontDialog;
begin
  result := false;
  dlg := VCL.Dialogs.TFontDialog.Create(NIL);
  if (dlg.Execute) then
    result := true;
  dlg.Free;
end;
Sobald ich das Teil aufrufe, semmelt mir das ganze mit einer Zugriffsverletzung beim dlg.execute.

Kann sich das einer erklären ????????

FaTaLGuiLLoTiNe 4. Apr 2018 09:59

AW: Merkwürdiger TFontDialog
 
Schonmal versucht dem Create entweder das aufrufende Formular oder einfach
Delphi-Quellcode:
Application
mitzugeben?

himitsu 4. Apr 2018 10:08

AW: Merkwürdiger TFontDialog
 
oder Screen.ActiveForm

Und dem Execute vieler VCL-Dialoge kann man auch noch ein Handle mitgeben. (der Form, vor welcher es liegen soll)
z.B. Screen.ActiveForm.Handle oder Application.MainForm.Handle (wäre aber blöd, wenn da gerade ein anderer Dialog/ShowModal aktiv ist und die MainForm sperrt) oder Self.Handle (aus einer EventMethode eines Formulars)

Ghostwalker 4. Apr 2018 12:04

AW: Merkwürdiger TFontDialog
 
Jup....alles schon probiert.

Interressanterweise funktioniert das ganze mit einem TColorDialog.....

MichaelT 4. Apr 2018 12:32

AW: Merkwürdiger TFontDialog
 
Geht. Allein wenn man dlg.Font:=nil setzt dann kommt bei mir eine Exception 'cannot assign nil to a TFont'

Ansonsten läuft das bei mir hier einwandfrei.

Ich gehe jetzt mal davon aus, dass du Tokyo nimmst. Arbeitest du mit Styles?

Zitat:

Zitat von Ghostwalker (Beitrag 1398092)
Servus,

ich hab folgende Funktion (abgespeckt):

Delphi-Quellcode:
function EditFont(AFont:TFont):boolean;
var
  dlg : TFontDialog;
begin
  result := false;
  dlg := VCL.Dialogs.TFontDialog.Create(NIL);
  if (dlg.Execute) then
    result := true;
  dlg.Free;
end;
Sobald ich das Teil aufrufe, semmelt mir das ganze mit einer Zugriffsverletzung beim dlg.execute.

Kann sich das einer erklären ????????


Ghostwalker 4. Apr 2018 13:47

AW: Merkwürdiger TFontDialog
 
Sowohl mit also auch ohne Styles bekomme ich den Fehler.

Wie du siehst, weiße ich dlg.font nix zu, steht also auf dem Default-Wert des Dialogs beim erzeugen.

EWeiss 4. Apr 2018 13:56

AW: Merkwürdiger TFontDialog
 
Zitat:

Zitat von Ghostwalker (Beitrag 1398109)
Sowohl mit also auch ohne Styles bekomme ich den Fehler.

Wie du siehst, weiße ich dlg.font nix zu, steht also auf dem Default-Wert des Dialogs beim erzeugen.

ka.. vielleicht geht das?

Delphi-Quellcode:
dlg := VCL.Dialogs.TFontDialog.Create(self);

eventuell holt er sich dann die Font Informationen aus der Main Class bzw. deiner Form.
Ist aber auch möglich das ich quatsch rede ;)

Einen Font zuweisen bevor du den Dialog(Execute) ausführst?
Delphi-Quellcode:
dlg.Font := Form1.Font;


gruss

Delphi.Narium 4. Apr 2018 14:16

AW: Merkwürdiger TFontDialog
 
Kann den Fehler hier nicht nachvollziehen.

Bau bitte mal ein Minimalprogramm mit reproduzierbarem Fehler und hänge die Exe hier an. (Und eventuell den Source, damit man, bei auftretendem Fehler in der Exe, es mal mit 'nem anderen Delphi kompilieren kann.)

Eventuell ist es ja kein Programmierfehler, sondern irgendwie systemabhängig. Das könnte man dann so mal testen.

Frei nach dem Motto: Kracht die Exe nur bei Dir oder bei allen, die sie mal starten.

Wer testet schreibt hier dann kurz:

Geht mit Windowsversion.

oder eben:

Geht nicht mit Windowsversion.

oder:

kompiliert mit Delphi xy, Windowsversion, Fehler tritt auf / tritt nicht auf

MichaelT 4. Apr 2018 14:56

AW: Merkwürdiger TFontDialog
 
War allein ein Hinweis, wenn bei mir überhaupt eine Exception auftritt.

Dann brauchen wir ein Cut Down und eine Executable bei der das Problem auftritt.

Ich kann man nur erinnern, Forum Github. Es gibt einen Hinweis ganz unten auf 10.2.2.

Du sagst bei anderen Dialogen tritt das Problem nicht auf? Das kommt mir seltsam vor. Sonst würde ich auf die Registrierung der Hooks tippen.

High DPI?

Zitat:

Zitat von Ghostwalker (Beitrag 1398109)
Sowohl mit also auch ohne Styles bekomme ich den Fehler.

Wie du siehst, weiße ich dlg.font nix zu, steht also auf dem Default-Wert des Dialogs beim erzeugen.


jaenicke 4. Apr 2018 18:41

AW: Merkwürdiger TFontDialog
 
An welcher Stelle kommt denn die Exception im Execute? Wie sieht der Stacktrace dazu aus?


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.
Seite 1 von 3  1 23      

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