Deutsch
Units

RTFHandling.pcu

 
- Seite 1 -



Dieter
Zornow
Hier mein zweiter Wettbewerbsbeitrag

Download

Ich habe mich mal mit dem Richedit befasst und eine PCU geschrieben, die das ganze Handling
stark vereinfachen soll. Es sind 99 Funktionen enthalten, mit vielen Features wie zoomen, das komplette
Handling einschließlich der Dialoge für Suchen und Suchen und Ersetzen sowie verschiedene Bullets
Zeilenumbruch, ein Kontextmenü und drucken, hoffe dass das Drucken überall funktioniert, da ich nur mit
dem PDF-Printer getestet habe
Dabei ist eine, wie ich meine, gute Dokumentation und ein Beispielprogramm als prf das die Funktionen lauffähig
zeigt, so dass es kinderleicht sein sollte sie zu nutzen.
Ich habe Wert darauf gelegt immer das komplette Handling einer Funktion zu integrieren, so dass das meiste
mit einem Aufruf abgedeckt ist, sowie die Anzahl der Parameter so gering als möglich zu halten, meistens wird
nur das Handle des Richedits übergeben.
Es ist kein Subclassing vorhanden, da ich die PCU ab XProfan 8.0 lauffähig machen wollte.
Da ich keine 8 er Version installiert habe, müssen Tests zeigen ob es mir gelungen ist.
Auch im Beispielprogramm habe ich mich bemüht nur Befehle der 8.0 Version zu nutzen, kenne aber
den Befehlsumfang nicht genau. Unter Version 11 läuft aber alles.
Bilder einfügen ist ebenfalls noch nicht integriert, da mir aus Zeitgründen der Aufwand zu groß war.
Kommt aber noch, wie es meine Zeit erlaubt.
Vorschläge und Kritik zur Weiterentwicklung sind willkommen.

Im Paket enthalten sind

Demo.prf, Ein Demonstartionsprogramm für Möglichkeiten der PCU
Dokumentation.chm, Die Dokumentation der 99 Funktionen.
Dokumentation.rtf, Die Dokumentation als RTF-Datei
MinitextPad.zip, Ein kleiner Editor den ich zur Demonstartion geschrieben habe (als Exe)
RTFHandling.def, Die von XPSE erzeugte Definationsdatei,
RTFHandling.pcu, Die PCU
RTFHandling.html Die von XPSE erzeugte Hilfe.

Gruß

Dieter

139 kB
Kurzbeschreibung: Version 1.0.5 - 07.09.2009
Hochgeladen:07.09.2009
Ladeanzahl270
Herunterladen
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
24.11.2008  
 



 
- Seite 2 -


Dietmar Horn
Ich habe den Thread mal in den Wettbewerbsbereich 2008 verschoben, für den es laut Eröffnungsposting von Dieter wohl auch gedacht gewesen war.

Gruß
Dietmar


Das war nicht richtig, den Thread gibt es dadurch hier doppelt  [...]  .

Das war schon korrekt, die Einreichung physikalisch bei den Units abgelegt (weil es eine ist), und hier eine Schattenkopie (Link).

Hättest hier geschaut  [...]  hättest den Eintrag gesehen, so wie er jetzt doppelt vorhanden ist.

Ich schau mal das zu korrigieren.
 
26.11.2008  
 




Dieter
Zornow
@Thomas
Linker und rechter Rand ohne Dialog setzen ist schon vorhanden
KompilierenMarkierenSeparieren
Setmargin(hdl&,linkerrand&,rechterrand&)
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
26.11.2008  
 




Dietmar
Horn
@iF: Sorry! Da müssen meine Glasaugen wohl mal wieder ganz schön beschlagen gewesen sein. Wenn ich seniles Blöd-Hörnchen schon mal versuchen möchte, was in Ordnung zu bringen ...
 
Multimedia für Jugendliche und junge Erwachsene - MMJ Hoyerswerda e.V.  [...] 

Windows 95 bis Windows 7
Profan² 6.6 bis XProfan X2 mit XPSE

Das große XProfan-Lehrbuch:  [...] 
26.11.2008  
 



Dietmar Horn
...schon mal versuchen möchte, was in Ordnung zu bringen...


Nennen wir es einfach Anfangsschwierigkeiten.
 
26.11.2008  
 




Thomas
Freier
@Dieter, das mit der Randeinstellung hatte ich überlesen.
Anbei ein kleiner Test wie weit, und ich würde die RTF.pcu gerne einsetzen, meine Vorlage abgearbeitet wird mit deinem Beispielprogramm. Das ich zum Test die alte *.rtf genommen habe war reine Vorsicht.
1. Font auslesen...Anzeige: 0 ....Abbrechen gedrückt und die Fonthöhe wurde verändert Bild Font-1.png .
2. Die Anzeige auf dem RTF-Edit ist identisch Bild Edit-1.png . Rand links und oben ist im Original= 0. Text wurde eingerückt. Oben eine Leerzeile.
3. Beim Druck scheiden sich die Geister. Da entstehen beim Beispielprogramm Ränder? Bild Print-1.png . Das Etikettenpapier hat Rand 0/0. Da bekomme ich echt Probleme. Wo kommen die Randabstände her?
Das Original habe ich umbenannt in *.prf angehängt. Mit dem Editor geöffnet,ist auch die Formatierung gut zu erkennen.

1 kB
Hochgeladen:27.11.2008
Ladeanzahl185
Herunterladen
32 kB
Hochgeladen:27.11.2008
Ladeanzahl110
Herunterladen
28 kB
Hochgeladen:27.11.2008
Ladeanzahl154
Herunterladen
20 kB
Hochgeladen:27.11.2008
Ladeanzahl133
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
27.11.2008  
 




Dieter
Zornow
@Thomas
ich werde mir das mal anschauen, die Ränder in meinem Beispielprogramm kommen
von R_RTFPrint(ed&,2,2), du müsstest dann R_RTFPrint(ed&,0,0) verwenden, dann
sollten die Ränder weg sein, bis auf den druckbaren Bereich
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
27.11.2008  
 




Thomas
Freier
@Dieter
die hatte ich im Beispielprogramm auf 0/0 gesetzt und beides über FreePdf XP ausgedruckt. In diesem Fall ist der druckbare Bereich das ganze Blatt.
 
Gruß Thomas
Windows XP SP2, XProfan X2
27.11.2008  
 




Dieter
Zornow
@Thomas,
deine RTF-Datei hat schon einen Rand von Hause aus, vielleicht kannst du die Ränder
in deinem PDF-Printer noch einstellen, da immer das Drucker Device Context geholt wird.
Ich habe es mit dem PDF-Creator ausgedruckt, hat nur die in deiner RTF-Datei voreingestellten
Ränder.
Du darfst natürlich micht mit der Druckversion über Write drucken, denn da gelten die
dort voreingestellten Ränder.
Siehe Anhang

87 kB
Hochgeladen:27.11.2008
Ladeanzahl167
Herunterladen
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
27.11.2008  
 




Thomas
Freier
Der voreingestellte Randabstand sollte bei 2mm liegen und der Text ist im RTF Eingerückt. Hier ca. 5mm.
Auch mit dem Destiller getestet und Ergebnis siehe *.ZIP .

83 kB
Hochgeladen:27.11.2008
Ladeanzahl112
Herunterladen
 
Gruß Thomas
Windows XP SP2, XProfan X2
27.11.2008  
 




Dieter
Zornow
@Thomas,
verstehe jetzt nicht ganz was du meinst, hast du das mit deiner Routine ausgedruckt ?

Den lange Ausdruck sicher nicht, da deine Routine ja nur ein paar Zeilen ausdruckt,
wenn du da mit 0,0 gedruckt hast werden die Ränder bei der großen Datei bei der Erstellung
des PDFs eingefügt. Wenn ich die Datei mit 0,0 ausdrucke wird alles ohne einen Rand direkt
links und direkt von oben ausgedruckt.

Ich habe die Parameter in cm definiert und rechne Twips zu cm, das ist in meiner
korrigierten Arbeitsversion geändert zu mm, da cm doch zu grob sind, da bei 0,0 keine
Ränder mehr vorhanden sind und 1 gleich einen cm einrückt. In der neuen Version dürfte
also die Steuerung feiner sein.

Nebenbei: Deine Pfadermittlung erscheint ziemlich unsicher. Ich habe mal dein Programm
getestet und Dateien, Bild und RTF ins Verzeichnis kopiert, die Dateien wurden erst
gefunden, nachdem ich Pfad$ entfernt habe.
Das Ergebnis hatte aber dann auch Ränder mit PDF-Creator und deiner Routine.

siehe Anhang

99 kB
Hochgeladen:28.11.2008
Ladeanzahl142
Herunterladen
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
28.11.2008  
 




Thomas
Freier
@Dieter,
habe gerade gesehen, dass ich, es ist ein RTF-Beispiel von "Pascal", das Original in die ZIP kopiert hatte.
Um randlos zu drucken ist der Teil:

if %printing--Bei Druck: %HDC2 = %HDC = &PDC
~SetMapMode(%hdc2,1)
~SetWindowExtEx(%hdc2,1,1,0)
~SetViewPortExtEx(%hdc2,1,1,0)
PosX%=PosX%+30--Korrektur ???
PosY%=PosY%+30--Korrektur ???
endif


PosX%+30--Korrektur ??? dann auf PosX%+0--Korrektur ??? geändert worden,bzw., die Werte werden bei mir dann durch Variable für die X/Y-Abstände gesteuert.
Im Moment stehe ich noch auf dem Schlauch, denn bei unverändertem Druckertreiber kommt es unterschiedlich. Werde nächste Woche weiter testen.
Wie gesagt, benutze ich für den Etiketendruck eine RTF, die dann je nach Etikettengröße, im Beispiel 2 Reihen und 7 Zeilen, entsprechend 14 mal auf den A4-Bogen gedruckt wird, bevor ein Seitenvorschub stattfindet.
 
Gruß Thomas
Windows XP SP2, XProfan X2
28.11.2008  
 




Dieter
Zornow
Wenns geklappt hat, habe ich beim Eingangsposting den Download upgedatet. Hatte plötzlich keine
Verbindung mehr.

Änderungen zur Vorversion

Druckrändereinstellung von cm in mm geändert
Druckerdialog kann nun wahlweise benutzt werden.
Neue Funktion SaveRTF zeigt wenn Dateinamen vorhanden keinen Savedialog, wenn nicht kommt der Savedialog
Die alte Funktion RTFSaveunder zeigt nun immer einen Savedialog ob eine Name vorhanden ist oder nicht.
Neue Funktion GetMarkedFontname gibt den Fontnamen der Markierung zurück
Neue Funktion GetEntireFontname gibt den im Dokument eingestellten Fontnamen zurück
Neue Funktion RTFFormLetter eine Serienbrieffunktion.
Neue separate PCU zum Einfügen von Objecten und Bildern.

Das Einfügen von Bildern konnte ich nur über die Zwischenablage realiesieren, da ich keine bessere Idee hatte als ein Speicherbitmap zu erzeugen in die Zwischenablage zu kopieren mit EM_Pastespezial aus der Zwischenablage in das Richedit einzufügen.
Der Anwender merkt aber nichts davon, denn die Funktion stellt sich als normales Laden eines Bildes dar, da nach dem Ladedialog alles andere ohne weiters Zutun passiert.

Das alleinige Einfügen von Objecten erschien mir nicht das Wahre, da man nur bei Bmp ein Vorschauicon sieht, bei anderen Formaten nur das Icon der verknüpften Anwendung und halt immer den Namen der Datei.
Ich denke, das mit der Zwischenablage ist aber trotz einigen Nachteilen ein gangbarer Weg um *.BMP;*.JPG;*.GIF;*.PNG;*.ICO;*.WMF;*.RLE
in Originalgröße in einem Richedit anzuzeigen und sogar auszudrucken. Die Bilder sind im Richedit scallierbar.

Die objects.pcu ist aufgebaut auf den Vorlagen von Uwe "Pascal" Niemeier, so dass ich sie bis auf eine Funktion nicht als mein Werk bezeichnen will, denn ich habe sie nur soweit aufbereitet. Ohne diese Vorlage hätte es mit Sicherheit länger gedauert, bis ein Ergebnis da gewesen wäre. Vor allem ohne die Asemblerroutine zur Übergabe von mehr Parametern, wäre es vielleicht gar nicht möglich gewesen.

In soweit stellt diese OBJECTS.PCU kein Wettbewerbsbeitrag dar, sondern lediglich eine Zugabe die die Sache
abrundet, da Uwe der eigentliche Autor ist, ich möchte micht ja nicht mit fremden Federn schmücken

Da ich zufällig, als ich im Internet etwas über Richedits gesucht habe, auf die Probleme mit Laden und Speichern eines Richedits mit RTF() bis zu XProfan 10 gestoßen bin, habe ich mich entschlossen für die Profanversionen 8 + 9 die undokumentierte Call-Funktion zu nutzen und eine Version nur für XProfan 8 + 9 beizulegen, ist aber nicht getestet.

Mit dabei ist auch wieder ein kompletter Editor als Exe, der auch das Einbinden einer DBase-Tabelle in die Seriendruck-Funktion demonstriert.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
04.12.2008  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

44.574 Betrachtungen

Unbenanntvor 0 min.
Georg Teles19.10.2022
H.Brill08.02.2022
RudiB.06.09.2021
Jürgen Strahl29.08.2021
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie