Delphi-PRAXiS

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 TFontdialog.Options lesen? (https://www.delphipraxis.net/14346-tfontdialog-options-lesen.html)

7. Jan 2004 15:03


TFontdialog.Options lesen?
 
Hallo, ich habe eine "kleine" Frage. :?:

Ich will für mehrere Controls den Fontdialog starten. Sind die Fonts unterschiedlich, soll die Schriftart nicht gesetzt sein.
Delphi-Quellcode:
if bNoCommonFontFace then FontDialog.Options:=FontDialog.Options + [fdNoFaceSel];
Aber wie finde ich denn raus, ob der Benutzer im Dialog einen Font ausgewählt hat? Das Flag bleibt bei den Options immer gesetzt, darüber geht das also nicht.

Falls mir hier jemand weiterhelfen kann, wäre es toll.

Danke, Euer Axel

sakura 7. Jan 2004 15:09

Re: TFontdialog.Options lesen?
 
Das ist wohl etwas, was MS so nicht als Option vorgesehen hat, aber folgender Code wäre ein mögliches Workaround:

Delphi-Quellcode:
  FontDialog1.Options := FontDialog1.Options + [fdNoFaceSel];
  // Namen auf #0 setzen
  FontDialog1.Font.Name := #0;
  if FontDialog1.Execute then
    // wenn name nicht #0 dann
    if FontDialog1.Font.Name <> #0 then
      Label1.Caption := FontDialog1.Font.Name
    else
      // sonst keine neue Font gewählt
      Label1.Caption := '*wuppdi*';
...:cat:...

7. Jan 2004 15:19

Re: TFontdialog.Options lesen?
 
Hallo Sakura,

danke für die schnelle Antwort, geht prima mit FontFaces.

Was ist aber z.B. mit den Styles? Ist ja ein leider Set, und der Status "leer" eines Sets ja auch ein gültiger Status ist (also kein Fett, kein Italic etc.)

Delphi-Quellcode:
  FontDialog1.Options := FontDialog1.Options + [fdNoFaceSel] + [fdNoStyleSel];
  // Namen auf #0 setzen
  FontDialog1.Font.Name := #0;
  if FontDialog1.Execute then
    // wenn name nicht #0 dann
    if FontDialog1.Font.Name <> #0 then
      Label1.Caption := FontDialog1.Font.Name
    else
      // sonst keine neue Font gewählt
      Label1.Caption := '*wuppdi*';
      if Fontdialog1.Font.Style=nil ???
Eine Idee?

Danke Axel

sakura 7. Jan 2004 15:24

Re: TFontdialog.Options lesen?
 
Zitat:

Zitat von minimops
Eine Idee?

Leider nicht. Am einfachsten wäre es wohl den Font-Dialog nachzubasteln und dann alles selbst zu erledigen.

Falls Du es so machen willst, die Schriften könnte man auf folgende Art in eine Listbox laden:
Delphi-Quellcode:
Listbox1.Items.Clear;
Listbox1.Items.AddStrings(Screen.Fonts);
...:cat:...

7. Jan 2004 16:00

Re: TFontdialog.Options lesen?
 
HalloSakura,

ich schau mal, ob ich noch etwas finde. Vielen Dank für Deine Hilfe! Falls sonst noch irgendwer eine Idee hat, ich würde mich sehr freuen.

Gruß Axel

Thunderchild 7. Jan 2004 16:27

Re: TFontdialog.Options lesen?
 
Zitat:

Zitat von minimops
Was ist aber z.B. mit den Styles? Ist ja ein leider Set, und der Status "leer" eines Sets ja auch ein gültiger Status ist (also kein Fett, kein Italic etc.)

Sets lassen sich doch miteinander vergleichen.
Machste Dir ne lokale OldStyle:tFontStyle und speicherst da drin den Style for dem Dialogaufruf.
Anschließend vergleichste: ergebnis:=OldStyle=FontDialog.Font.Style;

sakura 7. Jan 2004 17:02

Re: TFontdialog.Options lesen?
 
Zitat:

Zitat von Thunderchild
Sets lassen sich doch miteinander vergleichen.

Damit lässt sich aber nicht feststellen, ob der User die Einstellungen nicht geändert hat (jede Control behält ihre Einstellungen) oder ob der User diese Einstellungen jetzt auf alle Controls anwenden will ;-)

...:cat:...


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