Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Setzen der Schrift von einer Dialog Ressource (https://www.delphipraxis.net/99073-setzen-der-schrift-von-einer-dialog-ressource.html)

Luckie 6. Sep 2007 12:50


Setzen der Schrift von einer Dialog Ressource
 
Wie kann ich die Schrift die in einer Dialog Ressource für die Steuerelement verwendet wird zur Laufzeit ändern? Das muss irgendwie gehen ohne durch alle Kindsteuerelemente durch zu iterieren. WM_SETFONT scheint nur für Kindsteuerelemente zu funktionieren.

Olli 9. Sep 2007 00:19

Re: Setzen der Schrift von einer Dialog Ressource
 
Wenn du die Ressource kopierst und dann mit sowas wie CreateDialogIndirect oder DialogBoxIndirect (siehe MSDN-Library durchsuchenDLGTEMPLATE) erstellst, dann geht es auch "global". Allerdings wird das mit aller Wahrscheinlichkeit das Layout durcheinanderwürfeln. Besser wäre es mit einem einfachen EnumChildWindows den Font, ebenfalls zur Laufzeit, aber nach Erstellung, zu setzen und ggf. gleich das Layout entsprechend zurechtzurücken.

Luckie 9. Sep 2007 11:22

Re: Setzen der Schrift von einer Dialog Ressource
 
Die Idee durch alle Childfenster zu iterrieren hatte ich auch schon. Erschien mir allerdings etwas umständlich. Dann wird mir wohl nichts anderes übrigbleiben.

Olli 9. Sep 2007 12:44

Re: Setzen der Schrift von einer Dialog Ressource
 
Ressource im Speicher erzeugen oder manipulieren ist nicht schwer, aber wie gesagt, daß Layout wird mit ziemlicher Sicherheit leiden. Teste es einfach mal.

Luckie 9. Sep 2007 13:40

Re: Setzen der Schrift von einer Dialog Ressource
 
Was verstehst du unter "im Speicher erzeugen"? Ich laden den Dialog aus der Ressource mit
Delphi-Quellcode:
CreateDialog(hInstance, MAKEINTRESOURCE(100), 0, FDlgFuncPtr);

turboPASCAL 9. Sep 2007 14:04

Re: Setzen der Schrift von einer Dialog Ressource
 
blablabla ...

// Edit: ne, zur Laufzeit :wall:

// Noch 'n Edit:

Wie zur Laufzeit, wenn der Dialog schon erstellt ist oder bevor er erstellt wird per CreateDialog etc.?

Olli 9. Sep 2007 14:14

Re: Setzen der Schrift von einer Dialog Ressource
 
Zitat:

Zitat von Luckie
Was verstehst du unter "im Speicher erzeugen"?

Hast du denn überhaupt mal unter DLGTEMPLATE nachgeguckt? :zwinker:

Der Unterschied zum Laden aus einer Ressource ist, daß man alle Aspekte selber zur Laufzeit bestimmen kann. Allerdings kann man auch einfach eine Dialogressource kopieren und dann im Speicher modifizieren, bevor man den Dialog mit CreateDialogIndirect oder einer der anderen *Indirect-Funktionen anzeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 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