Autor Beitrag
mick
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: So 12.12.04 21:52 
moin moin.

habe auf meinem formular mehrere komponenten, u.a. ein gr. panel, darauf ein gr. image mit weiteren kleinen images wiederum darauf. moechte nun im mainmenue einen befehl integrieren, der mir diese images als ein screenshot ausgibt, genauer: 1) als datei speichern, 2) in die zwischenablage kopieren und als dritte moeglichkeit drucken.
wie implementieren?

ciao,
mijozi.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: So 12.12.04 22:10 
Hallo!

mick hat folgendes geschrieben:
1) als datei speichern

ausblenden Delphi-Quelltext
1:
Image1.Picture.SaveToFile('c:\test.jpg');					

mick hat folgendes geschrieben:
2) in die zwischenablage kopieren

ausblenden Delphi-Quelltext
1:
Image1.Picture.SaveToClipboardFormat({...});					

mick hat folgendes geschrieben:
dritte moeglichkeit drucken.

Schau dir mal die TPrinter-Klasse an (Delphi-Hilfe [F1]).

Gruß
Tino
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: So 12.12.04 22:20 
@Tino: ich glaube er meint alle Images zusammen als Screenshot etc.

AXMD
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Mo 13.12.04 08:59 
AXMD hat folgendes geschrieben:
@Tino: ich glaube er meint alle Images zusammen als Screenshot etc.

AXMD



richtig...


ciao,
mijozi.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mo 13.12.04 09:39 
Also das dritte ist ganz einfach:
ausblenden Delphi-Quelltext
1:
Form1.Print;					

Die anderen Sachen müssen wohl richtig programmiert werden. Habe ich aber noch nicht gemacht.
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Mo 13.12.04 14:21 
aber form.print druckt mir doch das komplette formular - ich will nur die images darauf.
konkreter fall: formular, image spielfeld drauf, dort images spielfiguren drauf. alles drucken. restliche objekte auf formular (listboxen, memos etc.) sollen nciht gedruckt werden.

ciao,
mijozi.
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Sa 18.12.04 16:35 
nachtrag:
die groesse ist auch viel zu klein. habe in der hilfe folgendes gefunden und mir zusammengebaut:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TUHauptForm.DruckeClick(Sender: TObject);
var
  r: TRect;
  i: Integer;
begin
  {
  if PrintDialogNotation.Execute then
   RichEditNotation.Print(OpenDialog1.FileName);
  }

  with Printer do
   begin
    r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
    BeginDoc;
    Canvas.Brush.Style := bsClear;
    for i := 0 to RichEditNotation.Lines.Count do
     Canvas.TextOut(200,200 +
      (i * Canvas.TextHeight(RichEditNotation.Lines.Strings[i])),RichEditNotation.Lines.Strings[i]);
    Canvas.Brush.Color := clBlack;
    Canvas.FrameRect(r);
    EndDoc;
   end;  // Von with-Anweisung
end;



wie kann ich da die groesse des ausdrucks aendern?

danke + ciao,
mijozi.
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Sa 18.12.04 17:05 
Hallo,

das Drucken ist im allgemeinen keine einfache Sache, da man die Ausgabe immer an die Auflösung des Druckers anpassen muss.
Du kannst es dir natürlich einfach machen und die Auflösung vom Drucker mit Printer.Width und Printer.Height holen und das Bild dann mit StretchDraw draufzeichnen.
Wenn du es etwas schöner und aufwändiger (professioneller) haben möchtest, dann schau dir mal dieses Tutorial an: www.delphi-source.de/tutorials/drucken.

Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
mick Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 159



BeitragVerfasst: Di 21.12.04 08:55 
hallo hape,

danke fuer die tips, werde es alsbald versuchen.
nebenbei: wissen tut hier vielleicht jmd., wie man einen namen fuer einen druckauftrag im spooler mitgibt? drucke ich naemlich den inhalt meines memos xy, so erhalte ich natuerlich einen eintrag im spooler, aber der ist zeichenlos. kann ich diesem einen namen im delphi-code mit auf den weg geben?

ciao,
mijozi.