Autor |
Beitrag |
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Do 26.02.09 22:23
Hallo Community,
ich habe eine Art "Wordpad" geschrieben, und bin jetzt durch Zufall auf ein Problem gestossen, was mir nicht ganz klar ist. Ich habe 2 verschiedene RTF-Dokumente mit diesem Programm geschrieben, und wollte diese aus Testzwecken beide drucken. Leider wird aber nur eins der beiden gedruckt.
Im Anhang befindet sich:
- Das Programm-
Der Druckdialog (vllt liegt es ja schon daran) sieht so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| procedure TForm1.Drucken1Click(Sender: TObject); begin
if printdialog1.Execute=true then RichEdit1.Print(RichEdit1.Lines.Text); end;
bzw
procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin
if (key = ord('P')) and (ssctrl in shift) then begin if printdialog1.execute then RichEdit1.Print(RichEdit1.Lines.Text); (...) |
Moderiert von Narses: Dateien als Anhang hochgeladen
// Info-Blatt ist die Datei, die sich nicht drucken lässt.
// Notiz ist die Datei, die sich drucken lässt.
Wäre nett von euch, mir zu sagen, woran es liegt das die eine Datei nicht gedruckt wird. Danke schonmal.
Moderiert von Narses: Delphi-Tags hinzugefügt
Einloggen, um Attachments anzusehen!
|
|
Dude566
Beiträge: 1592
Erhaltene Danke: 79
W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
|
Verfasst: Do 26.02.09 22:36
Mach dein Quellcode doch bitte in die Delphi Tags.
_________________ Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Do 26.02.09 22:46
Das geht wie ^^? - möchte aller dings auch nicht den ganzen Text hier öffentlich stellen
|
|
DelphiMarkus
Beiträge: 303
OpenSuSE
Delphi 2009 Pro., Lazarus
|
Verfasst: Do 26.02.09 23:07
Hallo!
Hier in der Hilfe steht wie das geht: www.delphi-forum.de/...ml&sub=,19,27,32
Und die rtf-Dateien kannst du doch in ein zip-Archiv packen und dann hier hochladen. Das ist viel schöner als das bei rapidshare.com runterzuladen. Einen Archivierer wirst du doch bestimmt haben, oder? [url=www.7-zip.org/]7zip[/url]
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Do 26.02.09 23:33
Hm k, der Witz ist, ich möchte hier nicht den ganzen Text posten von daher,
was könnte denn falsch sein, kann ja nur am Drucken liegen.
|
|
Narses
Beiträge: 10181
Erhaltene Danke: 1254
W10ent
TP3 .. D7pro .. D10.2CE
|
Verfasst: Fr 27.02.09 01:02
Moin!
Tony-S hat folgendes geschrieben : | Leider wird aber nur eins der beiden gedruckt. |
Was genau heißt das denn, was passiert? Löst du den Druck über Strg+P aus?
cu
Narses
_________________ There are 10 types of people - those who understand binary and those who don´t.
|
|
Timosch
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Fr 27.02.09 14:00
Wenn du ein MainMenu benutzt, lassen sich Shortkeys viel leichter implementieren. Schau dir mal die entsprechende Eigenschaft des Menüeintrags an.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Fr 27.02.09 18:24
Ich kann den Druck einmal über das Mainmenu öffnen File --> open o. Über Strg + P . Die Frage ist nur wieso das eine Dokument nicht gedruckt wird, d.h., es wird kein Druckdialog gestartet, wenn ich das zuvor geöffnete Dokument öffnen möchte. Gibt es da keinen Grund für??
|
|
Timosch
Beiträge: 1314
Debian Squeeze, Win 7 Prof.
D7 Pers
|
Verfasst: Fr 27.02.09 18:33
Tony-S hat folgendes geschrieben : | Ich kann den Druck einmal über das Mainmenu öffnen File --> open o. Über Strg + P . Die Frage ist nur wieso das eine Dokument nicht gedruckt wird, d.h., es wird kein Druckdialog gestartet, wenn ich das zuvor geöffnete Dokument öffnen möchte. Gibt es da keinen Grund für?? |
Wie ich schon sagte: Stell im MenuItem für Drucken den ShortCut Strg+P ein. Dann kannst du dir diese ganze Prozedur sparen.
Mal ganz ins Blaue geraten: Wahrscheinlich ist nicht immer das RichEdit im Fokus.
_________________ If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Fr 27.02.09 21:43
Nein das wäre ja Blödsinn, ich kann mit beiden Methoden das Dokument nicht drucken!
- Das andere Dokument lässt sich mit beiden Prozeduren drucken..
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 03.03.09 21:48
Das nicht druckbare Dokument enthält ein eingebettetes RTF-Objekt (der ganze Inhalt), ich vermute einmal, dass das deshalb nicht geht. Ausprobiert, was bei mir da passiert, habe ich noch nicht.
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 03.03.09 22:37
Nein, der Fehler liegt ganz wo anders. Der zum Drucken angegebene Titel ist einfach zu lang...
Ich hatte mich ja schon gewundert, warum du den ganzen Text als Überschrift beim Drucken haben willst. Aber in dem Fall funktioniert es so gar nicht. Am besten nimmst du nur die erste Zeile oder den Dateinamen oder eine eigene Überschrift oder so.
Nebenbei ist dein Vergleich auf true falsch: Delphi-Quelltext 1:
| if printdialog1.Execute=true then | Das kann ins Auge gehen.
Der Vergleich mit Booleanwerten ist nicht nur unschön und unlogisch, sondern falsch.
Hier habe ich mal ein kleines Beispiel gebastelt, wann es schief geht:
www.delphi-forum.de/....php?p=548760#548760
Mehr dazu steht hier:
www.delphi-treff.de/...olean-werten/page/4/
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Di 03.03.09 22:49
Hm wie meinst du das der Titel zum Drucken ist zu lang, im Infoblatt steht ja nur "expression (c)" in Notiz hingegen "eXpression lite (c), ist in der Lage, in verschiedenen Farben, Schriftarten und Größen zu " wäre also länger, auch wenn ich nur ein Wort als "Überschrift" nehme wird es nicht gedruckt
und das mit execute = true, hast du mir ja schonmal erklärt, das war dort nur, weil ich es kopiert hatte.
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 03.03.09 23:14
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Mi 04.03.09 00:11
jaenicke hat folgendes geschrieben : | Naja, du übergibst doch als Seitenüberschrift den gesamten Text. |
Du meinst praktisch den Titel den der Drucker dann angibt?
Hab einfachmal "Notiz" als Überschrift genommen, und gedruckt hat es nicht.
auch wenn ich nur ein Wort als "Überschrift" nehme wird es nicht gedruckt
jaenicke hat folgendes geschrieben : | Welche Version benutzt du denn? |
Delphi 7
Und mit welchem Quelltext ging es dann nicht?
Das ist eigentlich noch derselbe Text ^^ nur ohne execute = true, aber daran wirds nich liegen ;D
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| procedure TForm1.RichEdit1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key = ord('P')) and (ssctrl in shift) then begin if printdialog1.execute then RichEdit1.Print(RichEdit1.Lines.Text); |
und
Delphi-Quelltext 1:
| if printdialog1.Execute then RichEdit1.Print(RichEdit1.Lines.Text); |
Der Fehler liegt wohl in dem was ich RichEdit1.Print in Klammer zuweise - ja ?
Wenn ja und wenn es daran liegt müsste ich in Klammer ja so etwas rein schreiben wie Zeile 1...
ehm ich denk nach vllt isses ja ganz leicht
Moderiert von Narses: Delphi- und Quote-Tags hinzugefügt
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 04.03.09 00:21
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Mi 04.03.09 00:27
Ich weiß jetzt nicht, ob das die schlaueste Methode is was ich gemacht habe ^^.... aber ES GEHT
if printdialog1.Execute then RichEdit1.Print(RichEdit1.Lines[1]);
höhö ^^
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 04.03.09 00:30
Und was, wenn das Dokument nur eine Zeile hat, du aber versuchst die zweite zu nehmen?
Wie wäre es mit einem passenden Text... Delphi-Quelltext 1: 2:
| if PrintDialog1.Execute then RichEdit1.Print('Mein Druckauftrag'); | Oder wie wäre es wie gesagt mit dem Dateinamen, da es ja ein Editor ist?
|
|
Tony-S
Beiträge: 184
Erhaltene Danke: 6
Windows 7, XP, Ubtuntu
Delphi 7, Visual Basic.net
|
Verfasst: Mi 04.03.09 00:34
Ok wusste nicht as ich praktisch einen "beliebigen Text" übergeben kann, zumindestens weiß ich jetzt woran es liegt. Danke
|
|
jaenicke
Beiträge: 19276
Erhaltene Danke: 1741
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 04.03.09 00:49
Das steht doch in der Hilfe. Der angegebene Text steht in der Liste der Druckaufträge, weshalb da normalerweise der Dateiname oder ähnliches drin steht. Damit man den Druckauftrag identifizieren kann, wenn es mehrere sind.
Ich pack mal ein Bild in den Anhang, in dem Fall habe ich diese Seite vom Browser aus gedruckt, deshalb steht da der Titel der Seite...
Einloggen, um Attachments anzusehen!
|
|