Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Seite einrichten (https://www.delphipraxis.net/176801-seite-einrichten.html)

Saskia79 27. Sep 2013 09:40

Seite einrichten
 
Hallo ihr Lieben,

ich habe eine Frage und ich hoffe ihr könnt mir weiter helfen.
Ich habe ein Programm mit einem Memofeld incl. Inhalt und ein Image.
Dieses möchte ich gerne ausdrucken und somit auf ein Blatt Papier bringen. Das Drucken geht soweit, aber der Text des Memofeldes fängt unmittelbar mit dem Blatt an und es gibt keinen Rand. Das Bild hat eine vorgegebene Größe, ich weiß leider auch nicht wie ich das verändern kann, und liegt über dem Text. Vielleicht kann mir jemand mit einfachen Worten sagen bzw. schreiben was ich tun kann um die leere Seite wie ein richtiges Dokumant zu füllen.
Vielen Dank schon mal euch allen.
Saskia

Bernhard Geyer 27. Sep 2013 09:57

AW: Seite einrichten
 
Erstmal Herzlich willkommen.

Dein Fehler liegt in deinem Quellcode. Da du uns diesen nicht zeigst (glaube nicht das sieser so hochgeheime Infos beinhaltet) könnten wir jetzt eine Ratestunde beginnen und die Glaskugel bemühen. Einfacher ist es aber wenn du uns zeigst (Quellcode/Beispielprojekt) was du bisher gemacht hast.

Saskia79 27. Sep 2013 10:00

AW: Seite einrichten
 
hier ist der Quellcode
(Das sind aber Werke aus dem Netz, da ich keine Ahnung habe was ich tun soll)


Delphi-Quellcode:
procedure TForm2.Drucken1Click(Sender: TObject);
begin
ListBox1.visible := true;
Printer.PrinterIndex := ListBox1.ItemIndex; // Zuweisung aktiver Drucker

end;



procedure TForm2.ListBox1Click(Sender: TObject);
var
  i: Integer;
  r:TRect;
  s:String;
begin
Printer.PrinterIndex := ListBox1.ItemIndex; // Zuweisung aktiver Drucker

printer.BeginDoc;
printer.title := ' - Leuchten';
Printer.Canvas.Font.Size := 10;
Printer.Canvas.Font.Name := 'Verdana';
s := Memo1.Text;
r:=memo1.ClientRect;
for i := 0 to memo1.lines.count -1 do Begin
printer.canvas.textout( 0, i * printer.Canvas.TextHeight( Memo1.Lines[i] ) , Memo1.Lines[i]);
End;
DrawTextEx(PRINTER.Canvas.Handle, Pchar(s), Length(s), r, 100, nil);
Printer.Canvas.TextRect(r,50,50,s);
Printer.Canvas.StretchDraw (r,Image1.Picture.Bitmap);
//Printer.Canvas.Draw(4000,3000,Image1.Picture.Bitmap);
printer.EndDoc;

pustekuchen 27. Sep 2013 10:10

AW: Seite einrichten
 
Die x und y Koordinaten fangen auch bei 0 an. Du kannst jetzt ein Offset festlegen, was du dazu addierst.

Bitte nutze die "Delphi-Code hinzufügen"-Funktion(Römer Helm) im Editor um deinen Quelltext zu formatieren. Das erleichtert das lesen. (Bitte auch deinen Beitrag editieren)

Saskia79 1. Okt 2013 12:58

AW: Seite einrichten
 
Was ist ein Offset bzw. wo kann ich das anlegen?

pustekuchen 1. Okt 2013 14:12

AW: Seite einrichten
 
Das Offset ist einfach nur die Verschiebung von der oberen linken Ecke(X und Y). Kannst dafür eine Property, Variable oder ne Konstante deklarieren.

Und diese fügst du dann in deiner Zeile:
Delphi-Quellcode:
printer.canvas.textout();
hinzu.

Saskia79 2. Okt 2013 07:34

AW: Seite einrichten
 
ich habe es zwar leider immer noch nicht verstanden, aber danke für den Tip. Ich suche gerade Property in delphi 5, bis lang habe ih aber noch nichts gefunden.
LG


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz