[OT?] RichClient > Olaf

18/06/2010 - 00:06 von Lothar Geyer | Report spam
Ich weiß ja nicht, ob solche Fragen hier richtig sind - ich versuchs halt.

Hi Olaf,

ich bin dabei, mir ein paar Demos Deines RichClients 3 anzusehen - und
etwas eigenes zu versuchen.

1. Problem: wo gibt es eine Doku? ;-) Ich bin bei den Reports. Vieles
kann man zwar aus den Beispielen herauslesen - aber vieles auch nicht.

2. Problem: ich will eine Seite im Querformat drucken. Als Basis diente
mir das Beispiel von Wolfgand "Hello World". Genau wie in dem Beispiel
wird meine Seite auch im Querformat gezeigt - aber beim Drucken erhalte
ich Sie im Hochformat. Wo kann der Fehler liegen?

3. Problem: Ich möchte ein Rechteck mit runden Ecken haben, das einen
farbigen Rand mit einem Farbverlauf hat. Einfach außen rot, das nach
innen "verlàuft" (in ca. 2 mm). Also einen "unscharfen Rand" oder so.
Geht das?

Natürlich behalte ich mir vor, weitere Fragen zu posten - falls ich das
hier darf ;-)

Lothar Geyer
 

Lesen sie die antworten

#1 Schmidt
18/06/2010 - 02:39 | Warnen spam
"Lothar Geyer" schrieb im Newsbeitrag
news:

Ich weiß ja nicht, ob solche Fragen hier richtig sind -
ich versuchs halt.


Hoffe mal, dass die anderen User der Gruppe da
nix großartig dagegen haben. Dass da (seit ein
paar Jahren) auf meiner Seite kein "kommerzielles
Interesse" (mehr) dahintersteht, ist hoffentlich
inzwischen bekannt.

Also vielleicht einfach als frei verfügbare Vb-Runtime-
Erweiterung betrachten, genau wie ein - was weiss ich -
CommonCtl.ocx oder sowas - nur dass es hierzu von mir
(wenn auch vorerst nur Demos und keine Doku) aber
doch zumindest weiterhin Support gibt. ;-)

Mein Fahrplan mit den ganzen Helfer-Libs ist eher so,
dass ich über die nàchsten Jahre damit ein "sanfteres
Hinüberwechseln" auf einen neuen (möglichst kompatiblen)
Compiler und sowas wie eine neue "umfangreichere,
klassenbasierte vbRuntimeEx" (als plattformunabhàngigen
Abstraktionslayer) sicherstellen will, ohne spàter allzu
viel Code zwischen "Alt-VB6" und "Neu-VB6"
umschreiben zu müssen - zumindest in Projekten, die
viel bzw. "fast alles" über die Toolset-Klassen erledigen.

Primàr erstmal für mich selbst (ganz so uneingennützig
bin ich ja dann auch nicht ;-)- vielleicht erklàrt das auch ein
wenig die fehlende Doku), aber je mehr Interesse und
Hilfe von Anderen über die nàchsten Jahre dazukommt,
umso schneller, vollstàndiger und "sicherer" kann das alles
weitergetrieben werden.


ich bin dabei, mir ein paar Demos Deines RichClients 3
anzusehen - und etwas eigenes zu versuchen.

1. Problem: wo gibt es eine Doku? ;-)


Jahh phh ermm, die Frage wird immer mal wieder gern
genommen wie's aussieht. ;-)

Ich bin bei den Reports. Vieles kann man zwar aus den
Beispielen herauslesen - aber vieles auch nicht.

2. Problem: ich will eine Seite im Querformat drucken.
Als Basis diente mir das Beispiel von Wolfgand "Hello World".
Genau wie in dem Beispiel wird meine Seite auch im
Querformat gezeigt - aber beim Drucken erhalte
ich Sie im Hochformat. Wo kann der Fehler liegen?



Wahrscheinlich darin, dass Du die Dimensionen
in Doc.SetScaleAndPageDimensions bereits auf
"Querformat" getrimmt hast - das muss an der Stelle
(als Basis-Einstellung für ein potentiell "Landscape und Normal-
gemixtes Multipage-Dokument") immer im Hochformat
belassen werden.
SetScaleAndPageDimensions
hàtte also vielleicht deutlicher als:
SetScaleAndPaperDimensions
benamt werden müssen (wenn man schon keine Doku hat ;-))


Um eine Querformat-Seite zu erzeugen, reicht es dann hin,
With Page
.InitDrawMode Landscape:= True
...
einzuschalten.

Was dann in diesem simplen Helloworld-Example nur
noch fehlt, ist die Reaktion der Preview-PictureBox auf
diese dann erfolgte Landscape-Umschalterei - das passiert
in dieser simplen Demo nàmlich nicht - und die Preview
sieht entsprechend "verzerrt" aus (der Drucker-output
dagegen nicht).

Für das ernsthafte Einarbeiten empfiehlt sich dann eher
das größere "MM-based Demo" Projekt - da wackelt
dann auch die Preview-Picturebox hinterher wie sie soll
(beim Umschalten zwischen Landscape und "normal").

Vielleicht noch eine Warnung vorab, bevor Du am
Ende noch massiv Zeit reinsteckst - auf Windows
werden diese (EMF und GDI-basierten) Report-Klassen
wahrscheinlich auch weiterhin problemlos laufen -
auch Bugfixing würde ich dort weiterhin vornehmen -
aber *weiter Vorantreiben* möchte ich die Funktionalitàt
dieser GDI-basierten Klassen (gilt ebenfalls auch für cDIB
und cDC des RichClients) - jetzt nach Einführung des
cairo-Wrappers - dann doch nicht mehr.

Der kann direkt PDF erzeugen und macht diese
"àltere Reportengine" künftig obsolet - und wird dann
ebenso auch auf anderen Plattformen funktionieren, die
kein EMF-Format "von Haus aus" anbieten.

Also vielleicht auch mal die PDF-Demo des cairo-Tutorials
anschauen, das wàre dann "zukunftssicherer".

Die Demos 1-19 im cairo-Tutorial (inkl. der PDF-Demo)
machen nur Gebrauch vom "Standard-cairo-ZeichenInterface"
welches der Wrapper über seine Klassen anbietet.
Das ist also bereits stabil und wird so nicht mehr veràndert -
könnte also bereits "ernsthaft" eingesetzt werden.

Nur an den Interfaces der Widget-Klassen des Wrappers
(Demo 20) ist noch nicht alles komplett und in Sack und Tüten -
(großartige Änderungen an den bereits vorhandenen Methoden-
Signaturen der Widget-Basisklassen und am ganzen Arbeits-
Prinzip der WidgetEngine werden aber auch nicht mehr passieren -
da kommt nur noch ein wenig was dazu in den nàchsten Wochen).

3. Problem: Ich möchte ein Rechteck mit runden Ecken haben,
das einen farbigen Rand mit einem Farbverlauf hat.
Einfach außen rot, das nach
innen "verlàuft" (in ca. 2 mm). Also einen "unscharfen Rand"
oder so.
Geht das?


Mit dem GDI bekommt man auch "alles Mögliche" hin -
aber hier gilt im Prinzip dasselbe wie oben bereits erwàhnt.

Der cairo-Wrapper erlaubt vor allem bei komplexeren
Grafik-Effekten ein "eleganteres Lösen" des Problems.

Spiel vielleicht nochmal ein wenig rum, und sag wo Du
langgehen möchtest, (GDI-EMF oder cairo-PDF) -
danach richtet sich dann das Erzeugen des Effekts.
Würde dann ein entspr. Beispiel posten (kleines
Bild im Web, welches den benötigten Output prinzipiell
schonmal so halbwegs abbildet wàre auch nicht schlecht).

Olaf

Ähnliche fragen