AGB  ·  Datenschutz  ·  Impressum  







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

Zu jedem Font verfügbare Grösse ermitteln!

Ein Thema von R2009 · begonnen am 27. Nov 2009 · letzter Beitrag vom 27. Nov 2009
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 14:03
Zitat von R2009:
ich will doch nur rausfinden welche Grössen wirklich möglich sind um sie aufzulisten.
Wie schon gesagt: Bei TrueType/Opentype ist das egal.

Zitat von R2009:
Ich keine true types, ich will nur ganz normale Schrift.
TrueType/OpenType ist "ganz normal". Pixelfonts sind unter Windows seit Windows 95 die Ausnahme.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#12

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 14:21
Zitat von R2009:
Hallo Hawkeye,

was dein Link soll weiss ich nicht hat aber mit dem Thema überhaupt nichts zu tun.
Gegoogled hab ich auch schon sonst hätte ichs nicht ins Forum gesetzt.

Grüsse
rainer
Auf der Seite hinter dem Link ist eine weitere Seite verlinkt, wo exakt beschrieben wird wie man das tut, was du willst. Vorm Rumkacken lesen bitte.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
MarioM.

Registriert seit: 29. Mai 2006
52 Beiträge
 
#13

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 14:37
Da wollen Dir Leute helfen, und Du reagierst so darauf... nicht nett!

Da steht doch ganz eindeutig
Zitat:
See here for an explanation on how to enumerate fonts / font sizes for a specific font.
Mehr kannst Du nun wirklich nicht verlangen. Oder hast Du es nicht so mit dem Englischen?
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#14

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 14:44
hier ist etwas aus der DP
Ralph
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#15

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 15:21
Hallo,
Zitat von Bernhard Geyer:
Bei TrueType/Opentype ist das egal.
Ich habe mich nicht in das Thema eingearbeitet, aber die Reaktion auf die einzige Antwort im verlinkten Thread lässt etwas anderes vermuten:

Zitat:
I realise OpenType/TrueType will scale to any size, but they do often have particular sizes that have been manually hinted to look good.
Offenbar gibt es einige "bevorzugte" Schriftgrößen. Wegen dieser Zusatzinformation habe ich auch auf stackoverflow verlinkt, nicht auf die dort angegebene Seite. Meine Vermutung war, dass es Rainer um genau diese Einschränkungen geht.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#16

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 16:08
@Medium
@MarioM

Tut mir leid aber auch ich, habe das Here übersehen.


Zitat von R2009:
Sakrament luja,

ich will doch nur rausfinden welche Grössen wirklich möglich sind um sie aufzulisten.
Ich keine true types nutzen keine skalierbare Schriften, ich will nur ganz normale Schrift.
Und ich will auch den Standarddialog nicht benutzen.
Ich werd mich da aber jetzt durchwurschteln (durch den Standarddialog).

Grüsse und vielen dank
Rainer
Und für diese Reaktion habe ich vollstes Verständnis, weil auch ich vor ein paar Jahren nach einem "normalen" Font gesucht habe, und ich mit diesem ScriptTimesarialPodoniTeenRockwell-Zeug herzlich wenig anfangen kann/konnte.
(ich brauchte etwas mit fixedPitch)

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#17

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 17:32
Überlesen ist noch lange kein Grund jemanden anzufahren, der freiwillig und unentgeldlich Hilfe leistet. Dann frag ich freundlich nach, was ich evtl. übersehen habe auf der verlinkten Seite, aber doch nicht so.
Bevor ich eine empfohlene Quelle abtu, die mir ggf. die Arbeit erleichtert oder gar den Tag rettet, schau ich sie mir schon etwas genauer an. Zudem war die Rede von "hat aber mit dem Thema überhaupt nichts zu tun", was ja sogar was den direkten Link angeht schlicht nicht stimmt. Dort wurde nämlich genau das selbe gefragt; folglich hat der TE nichtmal ansatzweise darin gelesen.

Und naja... TrueType ist seit wie vielen Jahren der Standard unter Windows?
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#18

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 18:28
Zitat von Medium:
Überlesen ist noch lange kein Grund jemanden anzufahren, der freiwillig und unentgeldlich Hilfe leistet. Dann frag ich freundlich nach, was ich evtl. übersehen habe auf der verlinkten Seite, aber doch nicht so.
Da hast Du Recht.

Zitat von Medium:
... Zudem war die Rede von "hat aber mit dem Thema überhaupt nichts zu tun", was ja sogar was den direkten Link angeht schlicht nicht stimmt. Dort wurde nämlich genau das selbe gefragt; folglich hat der TE nichtmal ansatzweise darin gelesen.
oder aber es gab ein Verständnisproblem?!

Zitat von Medium:
Und naja... TrueType ist seit wie vielen Jahren der Standard unter Windows?
Na und? Manchmal ist die Darstellung einfach nur ......Da wünscht man sich die guten alten Bildschirmfonts zurück (OK da gab es auch solche und solche). Ich kann mich noch lebhaft daran erinnern, wie ich damals gesucht habe und wieder und wieder vor die Wand gelaufen bin.
Hinterher wußte ich, daß ich die falschen Vokabeln genutzt habe, und daher nie die "richtige" Antwort bekommen habe. Und natürlich meine falsche Schlußfolgerung TruType=proportional.

(Bei Microsoft gibt/gab es übrigens eine Doku zu TTF "www.microsoft.com/typography/tt/ttf_spec" )

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 18:37
Hallo taaktaak,
danke dein Hinweis hat mir geholfen, das ist dabei rausgekommen:

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    ListBox1: TListBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  imin,imax:integer; <<---hab ich auf die schnelle hinzugefügt. Hat im Original gefehlt
implementation

{$R *.dfm}
procedure GetSizes(var List:TStringlist;FontName:String;Min,Max:Integer);<<--- im Orginal
// list:tstrings hab ich durch var list:tstinglist ersetzt. Warum ist wohl klar

var DC : HDC;
    LF : TLogFont;

  function EnumSize(var LogFont:TLogFont;var TextMetric:TTextMetric;
                    FontType:Integer;Data:LParam):Integer; stdcall;
  const TTSizes : Array[0..15] of Integer
                = (8,9,10,11,12,14,16,18,20,22,24,26,28,36,48,72);
  var i,H : Integer;
        DC : HDC;
  begin
   if FontType=TrueType_FontType then begin // get sizes from const array
     for i:=0 to High(TTSizes) do
       if TTSizes[i]>=iMin then
         if TTSizes[i]<=iMax then
           TStrings(Data).Add(IntToStr(TTSizes[i]));
     Result:=0;
     end
                                 else begin // get sizes from WinAPI
    DC:=GetDC(0);

    try
      with TextMetric do
        H:=MulDiv(tmHeight-tmInternalLeading,72,GetDeviceCaps(DC,LogPixelsY));
        //
        // folgende "Übersetzung" berechnet für Courier, 10 pts das falsche Ergebnis 9 pts
        // ist also NICHT äquivalent zu MulDiv()
        //
        // H:=((tmHeight-tmInternalLeading)*72) div GetDeviceCaps(DC,LogPixelsY);
        //

      if H>=TTSizes[0] then // no smaller size than MinSize of TrueType
        if H>=iMin then
          if H<=iMax then
            if TStrings(Data).IndexOf(IntToStr(H))<0 then
              TStrings(Data).Add(IntToStr(H));
      Result:=1;

    finally
      ReleaseDC(0,DC);
      end;

    end;

  end;

  procedure SortList;
  var i : Integer;
      t : String;
      Done : Boolean;
  begin
    repeat
      Done:=true;
      for i:=0 to List.Count-2 do
        if StrToInt(List[i])>StrToInt(List[i+1]) then begin
          t :=List[i];
          List[i] :=List[i+1];
          List[i+1]:=t;
          Done :=false;
          end;
      until Done
  end;

begin
  DC:=GetDC(0);

  iMin:=Min;
  iMax:=Max;
  if iMax=0 then iMax:=999;

  try
    fillchar(LF,SizeOf(LF),0);
    LF.lfCharSet:=Default_CharSet;
    Move(FontName[1],LF.lfFaceName,length(FontName));

    List.BeginUpdate;
    List.Clear;
    EnumFontFamiliesEx(DC,LF,@EnumSize,LParam(List),0);
    Sortlist;
    List.EndUpdate;

  finally
    ReleaseDC(0,DC);
    end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var l:Tstringlist;
begin
  l:=tstringlist.Create;
  GetSizes(L,'Arial',0,100);
  ListBox1.Items.Assign(l);
  l.free;
end;

end.
Grüsse
Rainer

Ps: An alle die sich hier durch meine Reaktion "angemacht" oder ungerecht behandelt fühlen:
Es tut mir leid wenn ich jemanden ungerecht behandelt haben sollte.
War vielleicht der Frust darüber, dass man komplexeste Sachverhalte, in relativ kurzer Zeit, einfach lösen kann und
bei so einfachen Dingen wie der Fontgrösse fast kapitulieren muss.
Die unsachlichen Bemerkungen in diesem Thread möchte ich nicht kommentieren!
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.686 Beiträge
 
Delphi 2007 Enterprise
 
#20

Re: Zu jedem Font verfügbare Grösse ermitteln!

  Alt 27. Nov 2009, 20:38
Zitat von R2009:
Die unsachlichen Bemerkungen in diesem Thread möchte ich nicht kommentieren!
Das geht vermutlich an meine Adresse. Ich will mich für etwaige Formulationsfehlgriffe... ja hm, ich werd halt dezent ungehalten wenn auf gut gemeinte Hilfe so schroffe Reaktionen kommen
Nix für ungut, und ein wenig kann ich das ja verstehen wenn einen so "pisselige" Dinge Stunde um Stunde kosten. Da is am Riemen reißen ne Aufgabe...
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)
  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 22:53 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