PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Drucken in Delphi ????



Borky
20.11.2004, 16:21
He Leute, kann mir einer sagen, wie ich ihn delphi programmieren kann, das dias angeteigte Fenster ausgedruckt wird???? :confused:
und wie kann ich Delphi sagen, das es mir bei der ausgabe von real-Zahlen zwei stellen nach dem komma anzeigt :confused:

mfg Borky

Dingsi
20.11.2004, 17:34
Delphi im allgemeinen: http://www.delphi-source.de/

Delphi und Drucker: http://www.delphi-source.de/tipps/?kat=39

Delphi und Runden: http://www.delphi-source.de/tipps/?id=430

Borky
20.11.2004, 18:16
@ Dingsi: erst mal danke, das hat mir aber auch nicht weitergeholfen!
Wie man den Druckdialog aufruf weiß ich schon! in dem Dokument steht:


If PrintDialog1.execute
then Begin
{Eigentlicher Code für das Drucken}
end;


so und ich brauch diesen eigentlichen code, damit ich dem drucker sgaen kann, wass er drucken soll!

Ynnus
20.11.2004, 18:25
Runden kann man wie folgt:
Du hast beispielsweise 5 Nachkommastellen, auf 2 willst du.
Also rechnest du zuerst "deine Zahl" * 100.
Jetzt "deine Zahl" = "deine Zahl" + 0,5
Dann Wandeln in Integer, alle Nachkommastellen werden abgeschnitten.
Und wieder durch 100 teilen, also "deine Zahl" / 100.
Das ist aber sehr low level, Variablen lassen sich sicher in Delphi auch simpel per Befehl runden. Aber meine Methode ist allgemeingültig für jede Sprache die diese Rechenoperationen beinhaltet. ;)

Beispiel:

Zahl ist 1.23955
* 100
Zahl ist 123.955
+ 0,5
Zahl ist 124.445
in integer wandeln
Zahl ist 124
/ 100
Zahl ist 1.24 - und somit auf 2 Nachkommastellen gerundet, ab 5 aufgerundet. ;)

===
EDIT: Dann wandel doch einfach deine Zahl in einen String und schreib da ne 0 rechts dazu.

Borky
20.11.2004, 18:34
Also ich erklärs noch mal,
ich brauche rein runden, für zahlen mit nur einer Nachkommastelle, sodas zwei (also die nachfolgende 0) angezeigt wird! (Geldanzeige)

Zum Drucken:
ich brauche den code, mit dem ich dem drucker zuweisen kann, was er aus dem geöffneten Projekt drucken soll!

Freezy
22.11.2004, 18:18
Das ist nicht so einfach... erstmal brauchst du ein TPrinter Object wofür du Printers in die uses Klausel packen musst. Dieses Object besitzt dann einen eigenen Canvas auf den du alles zeichnest was du drucken willst. Wenn nötig geb ich dir noch einen ungetesteten Codeschnippsel... aber mehr weis ich auch nicht. Das hab ich auch nur aus einem sehr alten Delphi 2 Buch ^_^

Wegen dem runden... hmmm... versuch mal in der hilfe was zu Format zu finden. Ansonsten kannste das mal mit FloatToStr testen... einfach mal ein wenig in der Hilfe stöbern ;)

Ineluki
22.11.2004, 22:03
wegen dem runden ist die frage, ob dus als text oder real brauchst ...

als real :

a,b:real;
...
a:=123.456789;
b:=round(a*100)/100; { b=123.46 <- gerunder auf 2 stellen nach dem komma }

als text:

a:real;
s:string;
...
a:=123.456789;
s:=format('%5.3f',a); { s = '123.46' <- gerundet auf 2 stellen nach dem komma }

gruss Ineluki