![]() |
printgrid
Bekomme diese Fehlermeldung beim Drucken eines Stringgrid:
[Fehler] loteunit.pas(23): Ungenügende Forward- oder External-Deklaration: 'Tlote.PrintGrid' hier meine Quelltext:
Delphi-Quellcode:
unit loteunit;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, printers, DB, dbisamtb, StdCtrls, shellapi,Mask, strutils,DBCtrls, Grids, DBGrids, dbisamct,suchunit,tnpdf; type Tlote = class(TForm) Label1: TLabel; Label10: TLabel; DBISAMDBGrid1: TDBISAMDBGrid; DBISAMQuery1: TDBISAMQuery; DataSource1: TDataSource; order: TDBEdit; Artikel: TDBEdit; Button1: TButton; StringGrid1: TStringGrid; procedure deletetmppdf(); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); procedure PrintGrid(sGrid: TStringGrid; sTitle: string); private { Private-Deklarationen } public { Public-Deklarationen } end; var lote: Tlote; implementation {$R *.dfm} function GetTempPathD: string; var TmpDir: PChar; begin TmpDir := StrAlloc(255); GetTempPath( 255,TmpDir); Result := string(TmpDir); if Result[Length(Result)] <> '\' then Result := Result + '\'; StrDispose(TmpDir); end; procedure Tlote.deletetmppdf(); var SR: TSearchRec; begin if FindFirst(gettemppathd+'tmp*.pdf', faAnyFile - faDirectory, SR) = 0 then repeat deletefile(gettemppathd+sr.name); until FindNext(SR) <> 0; end; procedure Tlote.FormClose(Sender: TObject; var Action: TCloseAction); begin Action:=caFree; end; procedure PrintGrid(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; procedure Tlote.Button1Click(Sender: TObject); begin PrintGrid(StringGrid1, 'Print Stringgrid'); end; end. |
Re: printgrid
Du hast .PrintGrid als Methode von Tlote deklariert. Implementierst es aber als freie Prozedur.
|
Re: printgrid
Im Klartext ... das Tlote. fehlt
Code:
procedure [color=#ff0000][b]Tlote.[/b][/color]PrintGrid
|
Re: printgrid
danke für eure hilfe
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz