AGB  ·  Datenschutz  ·  Impressum  







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

Schrift Größe

Ein Thema von Finki · begonnen am 23. Jul 2013 · letzter Beitrag vom 8. Aug 2013
Antwort Antwort
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Schrift Größe

  Alt 2. Aug 2013, 10:26
Mann hier geister Know How durch die Beiträge, da könnte man Bibliotheken mit füllen.
@Finki was willst Du eigentlich?
a) Text, der in einem Memo angezeigt wird ausdrucken, egal wie die Bildschirmanzeige ist, das bedruckte Blatt soll "füllend" mit max.Zeilenlänge/breite gefüllt sein. Die Schriftgröße ist vorgegeben, aber unabhängig von der Bildschirmdarstellung.
b) Du möchtest WYSIWYG(ähnliches). Wird die Zeile auf demBildschirm umgebrochen, soll auch die Zeile im Ausdruck umgebrochen werden. (Was ist wenn Papierformat und Bildschirmformat nicht zueinander passen?)
c) nichts davon, Du ist mit der eierlegenden Wollmilchsau zufrieden.

Gruß
K-H
d)

nein ernsthaft ich möchte ein Programm (Text Editor) der Text wird in eine Memo geschrieben und dann kann man ihn ausdrucken...
so weit so gut

die Probleme sind:

1. Leerzeilen werden komischer weiße nicht gedruckt

2. Ich will die Option haben das man die Schriftgröße sowohl auf dem Bildschirm (also in der Memo) als auch auf dem gedruckten Papier zu ändern (logischer weise in Abhängigkeit, also ich ändere sie in meiner Memo und dann wird es auch in der richtigen Größe ausgedruckt)

3. Wenn eine Zeile zulang ist soll sie beim Ausdrucken automatisch umbrechen

ja ich glaub das wäre es dann uff

es würde mir, vorerst, aber auch ein (sehr gut) kommentierter Druckbefehl (an dem an erkennen kann was wo wie geändert wird) reichen

VIELEN VIELEN DANK
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Schrift Größe

  Alt 2. Aug 2013, 10:56

1. Leerzeilen werden komischer weiße nicht gedruckt
Ohne Deinen Sourcecode zu kennen kann man nur raten.

2. Ich will die Option haben das man die Schriftgröße sowohl auf dem Bildschirm (also in der Memo) als auch auf dem gedruckten Papier zu ändern (logischer weise in Abhängigkeit, also ich ändere sie in meiner Memo und dann wird es auch in der richtigen Größe ausgedruckt)

3. Wenn eine Zeile zulang ist soll sie beim Ausdrucken automatisch umbrechen
Und genau hier ist der Hund begraben.
a) nutzt Du Wordwrap in Deinem Memo?
Dann hast Du unter Umständen ungewollte Zeilenumbrüche, bzw. Umbrüche die garnicht existieren.
b) wie auch immer Du die Fontgröße änderst, die Bildschirmdarstellung und die Darstellung auf dem Drucker sind maximal ähnlich, aber nie gleich. In der Praxis bedeutet das, daß Zeilenumbrüche nie gleich aussehen.
c) "leere Zeilen" und "Leerzeilen" sind nicht das gleiche! Leere zeilen können z.b. durch ein Blank am Satzende verursacht werden, das durch den Umbruch in die nächste Zeile gerutscht ist.

Wenn Du zu lange Zeilen im Ausdruck umbrechen willst, solltest Du mal nach Textrec und Textwidth,Cliprect schauen.

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

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Schrift Größe

  Alt 2. Aug 2013, 11:25
Code lade ich heute abend hoch.

Was zur Hölle ist Wordwarp?????

Leerzeilen == zb das hier

text text

text text
  Mit Zitat antworten Zitat
Medium

Registriert seit: 23. Jan 2008
3.688 Beiträge
 
Delphi 2007 Enterprise
 
#4

AW: Schrift Größe

  Alt 2. Aug 2013, 11:32
Für einen Texteditor bei dem Druckbild und Bildschirmanzeige übereinstimmen sollen halte ich ein Memo für denkbar ungeeignet. Man sollte eher daher gehen, und den Text komplett selber auf einen Canvas zeichnen. Damit hätte man die Freiheit dies sowohl auf einen Bitmap-Canvas als auch den Drucker-Canvas genau gleich zu malen, und schafft sich zugleich die Freiheit beliebig zoomen zu können, sowie eine Basis für andere Elemente als nur Text. (Spinnt man das zu ende würde man grob bei Word heraus kommen.)
"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
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Schrift Größe

  Alt 2. Aug 2013, 11:53
Für einen Texteditor bei dem Druckbild und Bildschirmanzeige übereinstimmen sollen halte ich ein Memo für denkbar ungeeignet. Man sollte eher daher gehen, und den Text komplett selber auf einen Canvas zeichnen. Damit hätte man die Freiheit dies sowohl auf einen Bitmap-Canvas als auch den Drucker-Canvas genau gleich zu malen, und schafft sich zugleich die Freiheit beliebig zoomen zu können, sowie eine Basis für andere Elemente als nur Text. (Spinnt man das zu ende würde man grob bei Word heraus kommen.)
des wäre zu zeit aufwendig ich hab mir eher was richtung microsoft texteditor vorgestellt
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Schrift Größe

  Alt 2. Aug 2013, 12:26
dann würd' ich vielleicht einfach was von TStringlist ableiteten, so daß man nachher einfach schreiben kann:

Delphi-Quellcode:
var
  StringListPrintExt: TStringListPrintExt;
begin
  StringListPrintExt := TStringListPrintExt.Create;
  try
    StringListPrintExt.Assign(Memo1.Lines);
    StringListPrintExt.Font.Assign(Memo1.Font);
    StringListPrintExt.Print;
  finally
    StringListPrintExt.Free;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Schrift Größe

  Alt 2. Aug 2013, 16:08
Was zur Hölle ist Wordwarp?????
Ein Schreibfehler .WordWrap wäre richtig.

Leerzeilen == zb das hier

text text

text text
genau so meine ich es nicht. Eine Leerzeile hat die Länge 0 (if length(mystring)=0 then ) oder in einem Tstrings.Text gibt es eine solche Zeichenfolge ...#13#10#13#10...

des wäre zu zeit aufwendig ich hab mir eher was richtung microsoft texteditor vorgestellt
Wenn du damit den guten alten Notepad meinst, der Druckt jede Anzeigezeile und bricht sie notfalls um.

@Bjoerk
Was ist TStringListPrintExt; ?

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

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: Schrift Größe

  Alt 2. Aug 2013, 16:56
@K-H

Was gibt's bei was von TStringlist ableiten nicht zu verstehen?
Oder gefällt die der Name der Klasse nicht?
Ext steht für Erweiterung und für was steht wohl Print?

So ungewöhnlich?

Hast du sowas ähnliches nicht zu Hause rumfliegen?

Delphi-Quellcode:
  TStringListPrintExt = class(TStringList)
  private
    FWantPageNumbers: boolean;
    FFontColor: TColor;
    FFontStyle: TFontStyles;
    FFontSize: integer;
    FLineSpacing: integer;
    FMarginLeft: integer;
    FMarginTop: integer;
    FOrientation: TPrinterOrientation;
    FFontName: string;
    FTitle: string;
    FFormFeed: char;
    FUsePageBreak: boolean;
    FUseLineBreak: boolean;
    FOnPrintingStrings: TOnPrintingStrings;
    function GetLineHeight: integer;
    function GetCanvasHeight: integer;
    function CheckForNewPage(const Y: integer; const S: string): integer;
    function GetLineWidth(const S: string): integer;
    function GetMaxLineWidth: integer;
    function TrimRightBlankOnly(const S: string): string;
    procedure DoLineBreak(Result: TStringList);
    procedure SetDefaults;
  public
    procedure Print;
    property WantPageNumbers: boolean read FWantPageNumbers write FWantPageNumbers;
    property FontColor: TColor read FFontColor write FFontColor;
    property FontStyle: TFontStyles read FFontStyle write FFontStyle;
    property FontSize: integer read FFontSize write FFontSize;
    property LineSpacing: integer read FLineSpacing write FLineSpacing;
    property MarginLeft: integer read FMarginLeft write FMarginLeft;
    property MarginTop: integer read FMarginTop write FMarginTop;
    property Orientation: TPrinterOrientation read FOrientation write FOrientation;
    property FontName: string read FFontName write FFontName;
    property FormFeed: char read FFormFeed write FFormFeed;
    property UsePageBreak: boolean read FUsePageBreak write FUsePageBreak;
    property UseLineBreak: boolean read FUseLineBreak write FUseLineBreak;
    property Title: string read FTitle write FTitle;
    property OnPrintingStrings: TOnPrintingStrings
      read FOnPrintingStrings write FOnPrintingStrings;
    constructor Create;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Schrift Größe

  Alt 2. Aug 2013, 20:59
Hast du sowas ähnliches nicht zu Hause rumfliegen?
Nee hab ich nicht. Ich hatte angenommen, daß es ab XE4 verfügbar ist, oder zu den Jedis gehört, oder ...
Wenn Du so ein geniales Teil hast, hier findest Du ein dankbares Publikum.

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

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Schrift Größe

  Alt 2. Aug 2013, 22:34
@Bjoerk

So macht man das aber nicht. Man baut sich eine abstrakte Klasse, die eine TStrings-Instanz ausgeben kann.
Eine konkrete Ableitung davon erledigt die Ausgabe auf einen Drucker.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 00:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz