AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid drucken

Ein Thema von Murcielago82 · begonnen am 2. Jul 2006 · letzter Beitrag vom 2. Jul 2006
Antwort Antwort
Murcielago82

Registriert seit: 7. Apr 2006
30 Beiträge
 
#1

Stringgrid drucken

  Alt 2. Jul 2006, 21:28
Hallo ich drucke mein StringGrid so:
Delphi-Quellcode:
procedure StringGrid_drucken(sGrid: TStringGrid; sTitle: string);
var
  X1, X2: Integer;
  Y1, Y2: Integer;
  TmpI: Integer;
  F: Integer;
  TR: TRect;
begin
  Printer.Title := sTitle;
  Printer.BeginDoc;
  Printer.Canvas.Pen.Color := 0;
  Printer.Canvas.Font.Name := 'Times New Roman';
  Printer.Canvas.Font.Size := 12;
  Printer.Canvas.Font.Style := [fsBold, fsUnderline];
  Printer.Canvas.TextOut(0, 100, Printer.Title);
  for F := 1 to sGrid.ColCount - 1 do
  begin
    X1 := 0;
    for TmpI := 1 to (F - 1) do
      X1 := X1 + 5 * (sGrid.ColWidths[TmpI]);
    Y1 := 300;
    X2 := 0;
    for TmpI := 1 to F do
      X2 := X2 + 5 * (sGrid.ColWidths[TmpI]);
    Y2 := 450;
    TR := Rect(X1, Y1, X2 - 30, Y2);
    Printer.Canvas.Font.Style := [fsBold];
    Printer.Canvas.Font.Size := 7;
    Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);
    Printer.Canvas.Font.Style := [];
    for TmpI := 1 to sGrid.RowCount - 1 do
    begin
      Y1 := 150 * TmpI + 300;
      Y2 := 150 * (TmpI + 1) + 300;
      TR := Rect(X1, Y1, X2 - 30, Y2);
      Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);
    end;
  end;
  Printer.EndDoc;
end;
Bekomme so aber nur den Inhalt. Will aber auch die Gitterlinien haben weiss einer wie?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Stringgrid drucken

  Alt 2. Jul 2006, 21:34
Wenn du den Inhalt (Text) der Zellen "malst" mußt du halt zusätzlich die Rahmen malen.
Markus Kinzler
  Mit Zitat antworten Zitat
Murcielago82

Registriert seit: 7. Apr 2006
30 Beiträge
 
#3

Re: Stringgrid drucken

  Alt 2. Jul 2006, 22:06
Hast du nen Vorschlag? Mit 'malen' kenne ich mich gar nicht aus
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Stringgrid drucken

  Alt 2. Jul 2006, 22:14
Die Canvas-Klasse kennt auch die Methode .Rectangle welche ein Rechteck zeichnet.
Markus Kinzler
  Mit Zitat antworten Zitat
Murcielago82

Registriert seit: 7. Apr 2006
30 Beiträge
 
#5

Re: Stringgrid drucken

  Alt 2. Jul 2006, 22:47
Hi, kannst du mir das ein wenig erklären? Habe die procedure aus einen Schweizer Forum. Darum fällt es mir jetzt auch ein wenig schwer damit klarzukommen.
Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]); Damit zeichnet er doch die Zeile oder?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Stringgrid drucken

  Alt 2. Jul 2006, 23:05
Zitat von Murcielago82:
Hi, kannst du mir das ein wenig erklären? Habe die procedure aus einen Schweizer Forum. Darum fällt es mir jetzt auch ein wenig schwer damit klarzukommen.
Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]); Damit zeichnet er doch die Zeile oder?
Ja.

und die Methode .Rectangle ist wie folgt definiert:
Zitat von Delphi-Hilfe:
procedure Rectangle(X1: Integer; Y1: Integer; X2: Integer; Y2: Integer);
Du mußt also nur noch die koordinaten des Punktes links oben und des Punktes recht unten des Rechteckes hier eintragen.
Markus Kinzler
  Mit Zitat antworten Zitat
Murcielago82

Registriert seit: 7. Apr 2006
30 Beiträge
 
#7

Re: Stringgrid drucken

  Alt 2. Jul 2006, 23:18
Ist das nicht nur der procedur Kopf?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Stringgrid drucken

  Alt 2. Jul 2006, 23:24
Zitat von Murcielago82:
Ist das nicht nur der procedur Kopf?
Ja, aber hier sieht man welche Parameter die Methode hat.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 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