vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Display und Druck 
Autor: Rainer
Datum: 25.12.17 13:02

Hallo,
auch Euch allen ein schönes Weihnachtsfest.
Ich habe einige Zeit gebraucht, aber jetzt habe ich eine - zumindest für meine Bedürfnisse eine brauchbare - Lösung, die ich Euch aus Platzgründen (> 5 kB) in den nachfolgenden zwei Antworten präsentiere. Mit dem Bemerkungsteil sind diese zwei Antworten ebenfalls zu groß, sodaß ich die Bemerkungen für beide Funktionen hier anzeige:
   ''' <remarks>Die Parameter TEXT, SCHRIFT und BREITE entsprechen den 
   ' MEAURESTRING-Parametern text, font und width.
   '''  Auf die Verwendung der restlichen Parameter der Graphics-Funktion wurde 
   ' verzichtet, da diese in der Applikation
   '''  keine Verwendung finden.
   '''  Bei Übergabe eines Leerstring ist das Ergebnis SIZEF(0;0).
   '''  Der Schalter ISPRINTEROUT wird in der Ereignisroutine BEGINPRINT mit 
   ' der Anweisung
   '''  'IsPrinterOut = (e.PrintAction = Printing.PrintAction.PrintToPrinter)' 
   ' gesetzt.
   '''  Beim Start des Druckauftrags werden die Vergleichsfelder SizeDispl und 
   ' SizePrint sowie die Variable SizeFakt
   '''  auf SIZEF(0;0) zurückgesetzt. Dieser Nullwert ist das Kennzeichen, daß 
   ' der in der Variablen SizeFakt
   '''  abgelegte Wert nicht aktuell ist und der Korrekturfaktor für das 
   ' Ausgabemedium "Drucker" neu berechnet werden muß.
   '''  Jeweils der erste Aufruf der Funktion nach Start des Druckauftrages 
   ' führt zur Berechnung des Korrekturfaktors.
   '''  Der so berechnete und in SizeFakt gespeicherte Korrekturfaktor wird für 
   ' den gesamten Druckauftrag verwendet.</remarks>
Die beiden Funktionen unterscheiden sich nur in der Ausführung des Parameters BREITE, der dem MEASURESTRING-Parameter WIDTH entspricht. Somit ist in den ersten drei Parametern der Systemfunktion die angestrebte Identität gegeben.
Diese Funktion habe ich an allen Stellen, an denen ich die Systemfunktion "MeasureString" aufrufe, eingefügt. Der zusätzliche Aufwand mit den auf Class-Ebene zu vereinbarenden drei Variablen erscheint mir vertretbar. Außerdem habe ich versucht die zusätzlich zu durchlaufenden Anweisungen und damit den zusätzlichen Zeitaufwand so gering wie möglich zu halten. Auch die Frage einer eventuellen Wertabweichung bei Wechsel des Druckers spielt keine Rolle, da er mit jedem Druckauftrag neu berechnet wird.
Es ist vielleicht nicht der optimale Code, aber ich bin erstmal zufrieden, eine wirksame Lösung gefunden zu haben. Denn jetzt entspricht auch die 99. Seite der Druckausgabe der Anzeige in der Vorschau. Ich bin jedem dankbar, der eine optimalere Lösungsvariante findet und diese hier veröffentlicht.
Ich habe versucht, den Programmcode so ausführlich wie möglich zu kommentieren. Dadurch erscheint dieser in der vorliegenden Zeilenlänge etwas unübersichtlich. Wenn aber, nach dem Kopieren auf IDE-Ebene die überzähligen Fortsetzungszeilen entfernt werden, glaube ich, daß der Code übersichtlich genug ist.
Ich danke allen, die sich an der Diskussion des Problems teilgenommen haben und wünsche Euch einen guten Rutsch ins neue Jahr.
Gruß, Rainer.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Schrifthöhe mit Graphics-Funktion "MeasureString" für Displa...1.750Rainer19.12.17 17:01
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.077sv0001020.12.17 19:40
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.108Kuno6021.12.17 00:36
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.108Manfred X21.12.17 09:08
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.202Franki23.12.17 04:20
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.222Manfred X23.12.17 11:09
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.101Rainer25.12.17 13:02
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.143Rainer25.12.17 13:04
Re: Schrifthöhe mit Graphics-Funktion "MeasureString" für Di...1.139Rainer25.12.17 13:09

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel