AGB  ·  Datenschutz  ·  Impressum  







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

Zeichenbreite verändern

Ein Thema von cs.rumpelstilzchen · begonnen am 9. Feb 2006 · letzter Beitrag vom 9. Feb 2006
Antwort Antwort
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#1

Zeichenbreite verändern

  Alt 9. Feb 2006, 12:08
Hallo Leute!

Ich möchte die Zeichenbreite eines Windows-Fonts verändern, finde aber nirgendwo Informationen dazu.

Um Mißverständnissen vorzubeugen: Ich möchte nur die Breite verändern!

Hab das früher schon mal in GFA-BASIC (Kennt das außer mir noch jemand? ) geproggt. Das ging so:

Code:
GETFONT SYSTEM_FONT
FONT "times",HEIGHT 24,WIDTH 10,WEIGHT 800,FAMILY FF_SWISS, QUALITY 2, PITCH FIXED_PITCH TO fnt_13&
FONT "times",HEIGHT 24,WIDTH 12,WEIGHT 800,FAMILY FF_SWISS, QUALITY 2, PITCH FIXED_PITCH TO fnt_12&
FONT "times",HEIGHT 24,WIDTH 23,WEIGHT 800,FAMILY FF_SWISS, QUALITY 2, PITCH FIXED_PITCH TO fnt_14&
Danach konnte man z.B. mittels
Code:
SETFONT fnt_13&
diesen Font benutzen. Mittels
Code:
FREEFONT fnt_13&
konnte man den Font löschen und den Speicher dann wieder freigeben. Die fnt_xx& sind dabei die Font-Handles für Windows.


Geht sowas auch unter Delphi?

THX
Jürgen
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Zeichenbreite verändern

  Alt 9. Feb 2006, 12:31
Hallo Jürgen,

was du da mit der Windows-Version des Amiga Basic Compilers gemacht hast, kannst du in Delphi so machen:

Font.Pitch := fpFixed; Durch diese Einstellung wird Windows angewiesen eine feste Zeichenbreite anzunehmen. Ob und wie Windows darauf reagiert, darauf hast du keinen Einfluß. Manchmal wird nur die Breite geändert, manchmal wird der Font komplett gewechselt - auch gar keine Reaktion ist möglich.

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#3

Re: Zeichenbreite verändern

  Alt 9. Feb 2006, 13:52
Hallo Marabu , danke für die Antwort!

Das ist mir wohl bekannt, aber mit
Font.Pitch := fpFixed; stelle ich nur ein, ob der Abstand zwischen den Zeichen variabel (Proportionalschrift) oder fix sein soll. Die Zeichenbreite selbst kann ich damit nicht verändern!

Übrigens meinte ich das GFA-BASIC für Windows! Und die Befehle FONT, SETFONT und FREEFONT kapseln eigentlich nur irgendwelche Windows-API-Calls. Und die müßte ich doch auch mittels Delphi ereichen können, oder?

Weiß sonst jemand Rat?
Danke
Jürgen
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#4

Re: Zeichenbreite verändern

  Alt 9. Feb 2006, 14:10
Hab grad mal die alten GFA-Unterlagen durchgesehen.
Dort wird CreateFont benutzt, und dazu gibt's n nettes Tutorial von Luckie!

Werd ich mir mal ansehen ,
bisweilen Danke!

Sollte noch jemandem was ganz simples zur Lösung einfallen, immer her damit!
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Benutzerbild von cs.rumpelstilzchen
cs.rumpelstilzchen

Registriert seit: 16. Sep 2004
Ort: NRW
72 Beiträge
 
Delphi XE4 Professional
 
#5

Re: Zeichenbreite verändern

  Alt 9. Feb 2006, 16:27
Fertig!

So geht's:

Delphi-Quellcode:
  MyFont20 := Windows.CreateFont(24, 20, 0, 0, FW_BOLD, 0, 0, 0,
                               ANSI_CHARSET, OUT_RASTER_PRECIS,
                               CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY,
                               FIXED_PITCH + FF_MODERN, 'Courier New');
Danke Marabu für dein Engagement .

Bis bald
Jürgen
Der weiß, daß er nichts weiß, wie alle anderen auch nichts wissen.
Nur weiß er, was die anderen und auch er selbst noch lernen müssen.
(Novalis 1772 - 1801)
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:30 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