| |
|
|
- 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 |
|
|
| 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. |
|
|
| |
|
|
|
Dieter Zornow | |
|
| 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. |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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. |
|
|
| |
|
|
|
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 |
|
|
| 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 . |
|
|
| |
|
|
|
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 |
|
|
| 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. |
|
|
| |
|
|
|
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 ▲ |
|
|
|