Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Memo text ausdrucken (https://www.delphipraxis.net/175585-memo-text-ausdrucken.html)

Finki 2. Jul 2013 15:05

Memo text ausdrucken
 
Hey,

ich schreib grad eine art texteditor, eigentlich eine Memo componente und ein paar buttons.

Auf jedenfall will ich jetzt den Text in der Memo ausdrucken.

Dann kommt immer ein Fehler und eine verlinkung auf

printers.pas

Code:
//Raise error if Printer.Printing is not Value
procedure TPrinter.CheckPrinting(Value: Boolean);
begin
  if Printing<>Value then
  begin
    if Value then
      raise EPrinter.Create('Printer is not printing')
    else
      raise Eprinter.Create('Printer is printing');
  end;
end;
ich habs auch mal ganz simple gemacht und aus dem Lazarusforum den example code rauskopiert.

http://wiki.lazarus.freepascal.org/Using_the_printer

Code:
procedure TForm1.PrintBtnClick(Sender: TObject);
const
  LEFTMARGIN = 100;
  HEADLINE = 'I Printed My Very First Text On ';
var
  YPos, LineHeight, VerticalMargin: Integer;
  SuccessString: String;
begin
  with Printer do
  try
    BeginDoc;
    Canvas.Font.Name := 'Courier New';
    Canvas.Font.Size := 10;
    Canvas.Font.Color := clBlack;
    LineHeight := Round(1.2 * Abs(Canvas.TextHeight('I')));
    VerticalMargin := 4 * LineHeight;
    // There we go
    YPos := VerticalMargin;
    SuccessString := HEADLINE + DateTimeToStr(Now);  
    Canvas.TextOut(LEFTMARGIN, YPos, SuccessString);
  finally
    EndDoc;
  end;
end;
gleicher Fehler!!!

kann mir einer sagen warum?

im vorraus vielen dank für die antwort (hoffentlich);D

lg

Finki

baumina 2. Jul 2013 15:14

AW: Memo text ausdrucken
 
Zitat:

Zitat von Finki (Beitrag 1220430)
Dann kommt immer ein Fehler und eine verlinkung auf

printers.pas

...gleicher Fehler!!!

Sicherlich verrätst du uns auch noch welcher Fehler das ist und an welcher Stelle genau der auftritt.

Finki 2. Jul 2013 15:28

AW: Memo text ausdrucken
 
Sicher.

Da kommt einfach eine Meldung das ein Fehler in printers.pas in Zeile 504 aufgetreten ist.

DeddyH 2. Jul 2013 15:30

AW: Memo text ausdrucken
 
Und lautet der Fehler
Zitat:

Printer is printing
oder
Zitat:

Printer is not printing
? Eins von beiden kann es ja eigentlich nur sein.

baumina 2. Jul 2013 15:34

AW: Memo text ausdrucken
 
OK, mutmaßen wir mal weiter. Du kannst dein Projekt erst gar nicht kompilieren, weil ein Fehler in der Printers.pas in Zeile 504 auftritt, von dem Du uns nun sicher auch noch die Compiler-Fehlermeldung mitteilen willst.

Finki 2. Jul 2013 15:38

AW: Memo text ausdrucken
 
Sry, also komplementieren geht Programm startet auch.

Aber wenn ich dann was drucken will kommt ein Dialog wo darauf hin gewissen wird das ein error in printers.pas in 504 aufgetreten ist mehr nicht.

DeddyH 2. Jul 2013 15:50

AW: Memo text ausdrucken
 
Tu Dir und uns mal einen Gefallen: wenn die Fehlermeldung kommt, drückst Du STRG+C, erstellst hier einen neuen Beitrag und drückst dort STRG+V. Damit sehen wir dann den ganz genauen Wortlaut.

Finki 2. Jul 2013 15:59

AW: Memo text ausdrucken
 
Ich kann nix aus der Fehler Meldung raus kopieren. Aber ich kann euch ein Bild (Screenshot) hochladen. Oder was is besser kann beides erst daheim machen (in 15min).

Finki 2. Jul 2013 16:28

AW: Memo text ausdrucken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also hier ist die Meldung

DeddyH 2. Jul 2013 16:40

AW: Memo text ausdrucken
 
Interessant, das sieht nach Speicherfehler aus. Die Printer-Instanz ist aber gültig, oder muss die in Lazarus von Hand instanziert werden?

Finki 2. Jul 2013 16:42

AW: Memo text ausdrucken
 
????????

was meinst du damit?

die printers.pas ist vorgegeben da hab ich nix geändert

DeddyH 2. Jul 2013 16:52

AW: Memo text ausdrucken
 
Ich meinte: wenn ich in Delphi auf Printer zugreife, wird eine Instanz von TPrinter erstellt, sofern es sie vorher noch nicht gab. Sollte das unter Lazarus nicht so sein (was ich allerdings nicht glaube), dann greifst Du auf ein Objekt zu, das gar nicht da ist. Ich weiß nicht, ob das Folgende funktioniert, aber einen Versuch wäre es wert:
Delphi-Quellcode:
var
  MyPrinter: TPrinter;
begin
  MyPrinter := TPrinter.Create;
  try
    MyPrinter.BeginDoc;
    try
      MyPrinter.Canvas.TextOut(100, 100, 'Testdruck');
    finally
      MyPrinter.EndDoc;
    end;
  finally
    MyPrinter.Free;
  end;
end;

Finki 2. Jul 2013 17:02

AW: Memo text ausdrucken
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hey (cool) jetzt kommt der Fehler weiter vornen in der printers.pas

in Zeile 303

Code:
constructor TPrinter.Create;
begin
  if ClassType=TPrinter then
    raise Exception.Create('TPrinter is an abstract base class.'
    +' Please use a printer implementation like the package printers4lazarus.');
  Inherited Create;
  fPrinterIndex:=-1; //By default, use the default printer
  fCanvas:=nil;
  fPaperSize:=nil;
  fTitle:='';
end;
also ich denke Lazarus mach das von allein, oder? :D

DeddyH 2. Jul 2013 17:13

AW: Memo text ausdrucken
 
Achso, dann gibt es also Ableitungen von TPrinter. Nun weiß ich leider nicht weiter, da ich kein Lazarus installiert habe, da muss jemand Anderes einspringen.

Finki 2. Jul 2013 17:15

AW: Memo text ausdrucken
 
Gut du hast es versucht dafür bin ich dir schon dankbar. Also vielen vielen dank.

Finki 2. Jul 2013 17:55

AW: Memo text ausdrucken
 
also hier ist mal der code wie es aktuell ist wobei der besagte fehler auftritt

die uses

Code:
uses
  Classes, SysUtils, FileUtil, PrintersDlgs, Forms, Controls, Graphics, Dialogs,
  StdCtrls, ComCtrls, Buttons, EditBtn, ExtCtrls, PopupNotifier, Printers, Windows,
  Menus, Grids;
die procedure

Code:
   
type

  { TForm1 }

  TForm1 = class(TForm)
  PrintDialog1: TPrintDialog;
  btnPrint: TSpeedButton;  
  procedure btnPrintClick(Sender: TObject);
der button btnPrint

Code:
procedure TForm1.btnPrintClick(Sender: TObject);
begin

Drucken(Memo.Lines);

end;
und die procedure Drucken

Code:
procedure TForm1.Drucken(sl: TStrings);
var zeile, x, y: integer;
breite, hoehe, randlinks, randoben: integer;
begin
if PrintDialog1.Execute then
begin
   Printer.BeginDoc; //Druckjob beginnen
   SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm

   //Schrift-Einstellungen:

   Printer.Canvas.Font.Name:='Courier New';
   Printer.Canvas.Brush.Color:=clWhite;
   Printer.Canvas.Font.Height:=50; //5 mm

   //Blattgöße in 1/10 mm ermitteln:
   breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
   hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
   randlinks:=60; //0,6 cm
   randoben:=150; //1,5 cm
   x:=randlinks;
   y:=randoben*-1;
   for zeile:=0 to sl.Count-1 do
     begin
       if -y>(hoehe-2*randoben) then
          begin
          y:=randoben*-1;
          Printer.NewPage;
          end;
       if y=-randoben then
          begin
          Printer.Canvas.Font.Style:=[fsbold];
          Printer.Canvas.TextOut(x, y, 'Seite '+
          IntToStr(Printer.PageNumber));
          Printer.Canvas.Font.Style:=[];
          y:=y-Printer.Canvas.TextHeight(sl[zeile]);
          end;
     Printer.Canvas.TextOut(x, y, sl[zeile]);
     y:=y-Printer.Canvas.TextHeight(sl[zeile]);
     end;
   Printer.EndDoc;
end;
end;

MrMooed 2. Jul 2013 17:58

AW: Memo text ausdrucken
 
Da hast du dir echt einen tollen "Fehler" ausgesucht :lol:

Es sollte genügen, wenn du die TPrintersDialog Komponente (unter dem Reiter 'Dialoge') auf das Formular ziehst (nur 'PrintersDlgs' in die uses einzufügen klappt irgendwie nicht :?)

Finki 2. Jul 2013 18:02

AW: Memo text ausdrucken
 
Zitat:

Zitat von MrMooed (Beitrag 1220466)
Es sollte genügen, wenn du die TPrintersDialog Komponente (unter dem Reiter 'Dialoge') auf das Formular ziehst

hab ich gemacht!! :)

Zitat:

Zitat von MrMooed (Beitrag 1220466)
(nur 'PrintersDlgs' in die uses einzufügen klappt irgendwie nicht :?)

logisch weiß ich doch :wink:

MrMooed 2. Jul 2013 18:15

AW: Memo text ausdrucken
 
Also .. bei mir klappt es wie's Brezelbacken :shock:

habe deinen Code 1:1 übernommen und ihm ein Memo1.Lines übergeben - Drucker Auswahl erschienen und ich konnte drucken.
An welcher Stelle kommt denn der Fehler genau? einfach mal einen Brakepoint nach dem Begin setzen (in die Zeile klicken, F5 drücken) und dann durch den Code bewegen (F8)

Finki 3. Jul 2013 06:20

AW: Memo text ausdrucken
 
Kann es evtl daran liegen das meine memo componente erst während dem ausführen des Programms erstellt wird?

Bjoerk 3. Jul 2013 08:54

AW: Memo text ausdrucken
 
Schau eventl. mal hier (ganz unten).

MfG
Thomas

Finki 3. Jul 2013 12:25

AW: Memo text ausdrucken
 
Zitat:

Zitat von Bjoerk (Beitrag 1220525)
Schau eventl. mal hier (ganz unten).

MfG
Thomas

meinst du den letzten kommentar?

juhu bei mir funktioniert es auch wenn ich ein neues Programm mache

allerdings immer noch nicht im anderen Programm :(

bringt es euch was wenn ich mal den ganzen code reinstelle?

MrMooed 3. Jul 2013 12:31

AW: Memo text ausdrucken
 
vielleicht findet sich ja beim debuggen etwas :cyclops:
Und mich interessiert langsam, was da bei dir nicht klappt

Finki 3. Jul 2013 12:39

AW: Memo text ausdrucken
 
Also gut? Reicht der code?


Text_U

Code:


unit Text_U;


//Scrollen Hinzufügen
//Drucken


{$mode objfpc}{$H+}

interface

uses
* Classes, SysUtils, FileUtil, PrintersDlgs, Forms, Controls, Graphics, Dialogs,
* StdCtrls, ComCtrls, Buttons, EditBtn, ExtCtrls, PopupNotifier, Printers, Windows,
* Menus, Grids;

type

* { TForm1 }

* TForm1 = class(TForm)
*** btn1: TButton;
*** btnNeu: TSpeedButton;
*** ColorDialog1: TColorDialog;
*** Image1: TImage;
*** Memo: TMemo;
*** OpenDialog1: TOpenDialog;
*** btnEinfuegen: TSpeedButton;
*** OpenDialog2: TOpenDialog;
*** PopUp: TPopupNotifier;
*** PrintDialog1: TPrintDialog;
*** SaveDialog1: TSaveDialog;
*** btnOeffnen: TSpeedButton;
*** btnTxtFarbe: TSpeedButton;
*** btnSave: TSpeedButton;
*** btnPrint: TSpeedButton;
*** TabCon: TTabControl;
*** TBar: TToolBar;
*** procedure btn1Click(Sender: TObject);
*** procedure btnEinfuegenClick(Sender: TObject);
*** procedure btnNeuClick(Sender: TObject);
*** procedure btnOeffnenClick(Sender: TObject);
*** procedure btnSaveClick(Sender: TObject);
*** procedure btnTxtFarbeClick(Sender: TObject);
*** procedure FormCreate(Sender: TObject);
*** procedure btnPrintClick(Sender: TObject);
*** procedure TabConChange(Sender: TObject);

* private
*** { private declarations }
* public
* procedure Drucken(sl: TStrings);
*** { public declarations }
* end;

var
* Form1: TForm1;
* MyDataFile : string ;
* MyDataFile2 : string ;
* merk : boolean;
* Memo: TMemo;
* Printer: TPrinter;
implementation
uses
* Frage_U;
{$R *.lfm}

{ TForm1 }


//ERSTELLEN

procedure TForm1.FormCreate(Sender: TObject);
begin

* merk:=false;

* Memo.Caption := '';
* Memo.SetBounds(0,TabCon.Height,Form1.Width,Form1.Height-TabCon.Height);
//TabCon
* TabCon.SetBounds(0,0,Form1.Width,73);
* TBar.SetBounds(0,0,Form1.Width,40);
//btn1
* btn1.SetBounds(100,100,50,50);
* btn1.Visible:=false;
//btnTxtFarbe
* btnTxtFarbe.SetBounds(0,0,75,38);
* btnTxtFarbe.Visible:=false;
* btnTxtFarbe.Caption:='Farbe';
//btnEinfügen
* btnEinfuegen.SetBounds(0,0,75,38);
* btnEinfuegen.Visible:=false;
* btnEinfuegen.Caption:='Bild';
//btnSave
* btnSave.SetBounds(btnNeu.BoundsRect.Right+1,0,75,38);
//btnÖffnen
* btnOeffnen.SetBounds(btnSave.BoundsRect.Right+1,0,75,38);
* btnOeffnen.Caption:='Öffnen';
//btnPrint
* btnPrint.SetBounds(btnOeffnen.BoundsRect.Right+1,0,75,38);
* btnPrint.Caption:='Drucken';

end;
//DRUCKEN
procedure TForm1.btnPrintClick(Sender: TObject);
begin

Drucken(Memo.Lines);

end;


procedure TForm1.Drucken(sl: TStrings);
var zeile, x, y: integer;
breite, hoehe, randlinks, randoben: integer;
begin
if PrintDialog1.Execute then
begin
** Printer.BeginDoc; //Druckjob beginnen
** SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm

** //Schrift-Einstellungen:

** Printer.Canvas.Font.Name:='Courier New';
** Printer.Canvas.Brush.Color:=clWhite;
** Printer.Canvas.Font.Height:=50; //5 mm

** //Blattgöße in 1/10 mm ermitteln:
** breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
** hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
** randlinks:=60; //0,6 cm
** randoben:=150; //1,5 cm
** x:=randlinks;
** y:=randoben*-1;
** for zeile:=0 to sl.Count-1 do
**** begin
****** if -y>(hoehe-2*randoben) then
********* begin
********* y:=randoben*-1;
********* Printer.NewPage;
********* end;
****** if y=-randoben then
********* begin
********* Printer.Canvas.Font.Style:=[fsbold];
********* Printer.Canvas.TextOut(x, y, 'Seite '+
********* IntToStr(Printer.PageNumber));
********* Printer.Canvas.Font.Style:=[];
********* y:=y-Printer.Canvas.TextHeight(sl[zeile]);
********* end;
**** Printer.Canvas.TextOut(x, y, sl[zeile]);
**** y:=y-Printer.Canvas.TextHeight(sl[zeile]);
**** end;
** Printer.EndDoc;
end;
end;

//LEISTE

procedure TForm1.TabConChange(Sender: TObject);
begin

* btnSave.Visible:=false;
* btnNeu.Visible:=false;
* btnEinfuegen.Visible:=false;
* btnOeffnen.Visible:=false;
* btnTxtFarbe.Visible:=false;
* btnPrint.Visible:=false;

** case TabCon.TabIndex of
** 0: begin
****** btnNeu.Visible:=true;
****** btnOeffnen.Visible:=true;
****** btnSave.Visible:=true;
****** btnPrint.Visible:=true;
***** end;
** 1: begin
****** btnEinfuegen.Visible:=true;
***** end;
** 2: begin
****** btnTxtFarbe.Visible:=true;
***** end;
** end;
end;

//NEU

procedure TForm1.btnNeuClick(Sender: TObject);
var
* Form2: TForm;
begin
//Form2 Erstellen
Form2 := TForm2.Create(Self);
try
* //Wenn Memo vorhanden
* if merk=false then

**** begin
******** Form2.ShowOnTop;
******** Form2.SetBounds(840-200,525-50,400,100);
******** Form1.Enabled:=false;
**** end
* //Wenn Memo nicht vorhanden
* else
*** begin
* merk:=false;
* Memo.Caption := '';
* Memo.SetBounds(0,TabCon.Height,Form1.Width,Form1.Height-TabCon.Height);
*** end;
finally
end;
end;

//ÖFFNEN

procedure TForm1.btnOeffnenClick(Sender: TObject);
begin
//Nur .txt Dateien werden angezeigt
OpenDialog2.Filter := 'Text|*.txt' ;
//Öffnen befehl

if OpenDialog2.Execute then
** begin
MyDataFile2 := OpenDialog2.FileName ;
** end;

//Memo wird erstellt
Memo.SetBounds(0,Form1.Top-TabCon.BoundsRect.Bottom,Form1.Width,Form1.Height-TabCon.Height);
Memo.Lines.LoadFromFile(MyDataFile2);
merk:=false;
end;

//SAVE

procedure TForm1.btnSaveClick(Sender: TObject);
begin
* SaveDialog1.Execute;
* Memo.Lines.SaveToFile( Form1.SaveDialog1.Filename + '.txt');
end;

//FARBE

procedure TForm1.btnTxtFarbeClick(Sender: TObject);
begin
* ColorDialog1.Execute;
*// Memo.Font.Color:=ColorDialog1.Color;
end;

//BILD EINFÜGEN

procedure TForm1.btnEinfuegenClick(Sender: TObject);
var
* Image: TImage;
begin
* OpenDialog1.Filter := 'Bilder|*.jpg;*.png;*.jpeg;*.bmp' ;
* if OpenDialog1.Execute then
**** begin
* MyDataFile := OpenDialog1.FileName ;

* Image:=TImage.Create(Self);
* Image.Parent := Self;
* Image.AutoSize:=true;
* Image.Picture.LoadFromFile(MyDataFile);
* Image.Enabled:=true;
**** end;
end;

//SINNLOSER BUTTON

procedure TForm1.btn1Click(Sender: TObject);
begin

//PopUp

* { if klaus=true then
***** begin
******* PopUp.Destroy;
******* klaus:=false;
***** end
** else
** begin

** PopUp.ShowAtPos(Form1.BoundsRect.Left+btn1.BoundsRect.Right-5,Form1.BoundsRect.Top+btn1.BoundsRect.Top-50);
** PopUp.Text:='dieser Button hat keinen Sinn :D';
** PopUp.Title:='Hilfe zu' + ' ' + btn1.Name;
** klaus:=true;
** end; }
end;

end.


{var
* Button: TButton;
begin
* Button:=TButton.Create(Self);
* Button.Parent := Self;
* Button.Caption := 'Alter Titel';
* Button.Left := 100;
* Button.Top := 100;
* Button.OnClick := Button2Click;
end;*** }
Frage_u

Code:


unit Frage_u;

{$mode objfpc}{$H+}

interface

uses
* Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, EditBtn, ExtCtrls;
type

* { TForm2 }

* TForm2 = class(TForm)
*** btnNein: TSpeedButton;
*** btnJa: TSpeedButton;
*** procedure btnJaClick(Sender: TObject);
*** procedure btnNeinClick(Sender: TObject);
*** procedure FormCreate(Sender: TObject);
* private
*** { private declarations }
* public
*** { public declarations }
* end;

var
* Form2: TForm2;
* lblSpeichern: TLabel;

implementation
* uses
*** Text_U;
{$R *.lfm}

{ TForm2 }

procedure TForm2.FormCreate(Sender: TObject);
begin
** Form2.SetBounds(840-200,525-50,400,100);
//** Form2.SetBounds(840-200,525-50,400,100);
** Form2.Caption:='Speichern?';

** lblSpeichern:=TLabel.Create(Self);
** lblSpeichern.Parent := Self;
** lblSpeichern.SetBounds(30,25,350,25);
** lblSpeichern.Caption:='Sie hab noch ein Dokument offen. Wollen sie dieses zuerst speichern?';

** btnJa.SetBounds(135,60,60,30);
** btnJa.Caption:='&Ja';

** btnNein.SetBounds(btnJa.BoundsRect.Right+10,60,60,30);
** btnNein.Caption:='&Nein';

end;

procedure TForm2.btnNeinClick(Sender: TObject);
begin
//** Form1 := TForm1.Can;
** Form1.Enabled:=true;
** Form1.ShowOnTop;
** Close;
* // Form2.Visible:=false;

end;

procedure TForm2.btnJaClick(Sender: TObject);
var
* var1: integer;
begin

** for var1:=1 to 1 do
** begin
**** Form1.SaveDialog1.Execute;
**** Form1.Memo.Lines.SaveToFile( Form1.SaveDialog1.Filename + '.txt');
**** merk:=true;
** end;

**** Form1.Memo.Caption:='';
**** Form1.Enabled:=true;
**** Form1.ShowOnTop;

**** merk:=false;
* {** Form1.Memo:=TMemo.Create(Self);
**** Form1.Memo.Parent := Form1;

**** Form1.Memo.Caption := '';* }
**** Form1.Memo.SetBounds(0,Form1.TabCon.Height,Form1.Width,Form1.Height-Form1.TabCon.Height);

**** Close;
end;

end.

baumina 3. Jul 2013 12:47

AW: Memo text ausdrucken
 
Die globale Variable "Memo" wegmachen, denn du hast schon eine Variable mit dem Namen "Memo" in Form1.

MrMooed 3. Jul 2013 12:56

AW: Memo text ausdrucken
 
Zitat:

Zitat von Finki (Beitrag 1220577)
Also gut? Reicht der code?
Delphi-Quellcode:
* {** Form1.Memo:=TMemo.Create(Self);

Nimm doch das nächste mal die Delphi-tags für den Code - [DELPH|] Code [/DELPHI]

So weit ich sehen kann, hast du Text_U nicht in den uses deiner Frage_U eingebunden :?:
Eigentlich dürfte er dann aber schon im Compiler meckern .. trotzdem könnte es daran liegen, dass er auf ein nicht vorhandenes Memo zugreifen will.

Probiere es einfach mal das Memo Feld nicht erst zur Laufzeit zu erzeugen (sofern das nicht einen tieferen Sinn hat)

Finki 3. Jul 2013 12:59

AW: Memo text ausdrucken
 
Ja weis ich ich hatte anfangs die memo erst im Programm Verlauf erstellt. Aber das ändert nichts oder?

Sir Rufo 3. Jul 2013 13:02

AW: Memo text ausdrucken
 
Zitat:

Zitat von MrMooed (Beitrag 1220579)
Zitat:

Zitat von Finki (Beitrag 1220577)
Also gut? Reicht der code?
Delphi-Quellcode:
* {** Form1.Memo:=TMemo.Create(Self);

Nimm doch das nächste mal die Delphi-tags für den Code - [DELPH|] Code [/DELPHI]

So weit ich sehen kann, hast du Text_U nicht in den uses deiner Frage_U eingebunden :?:
Eigentlich dürfte er dann aber schon im Compiler meckern .. trotzdem könnte es daran liegen, dass er auf ein nicht vorhandenes Memo zugreifen will.

Probiere es einfach mal das Memo Feld nicht erst zur Laufzeit zu erzeugen (sofern das nicht einen tieferen Sinn hat)

Die
Delphi-Quellcode:
Text_U
ist eingebunden.

@Finki

Bitte entferne doch die ganzen * in dem Code und benutze die Delphi-Tags

Code:
[DELPHI]
procedure Foo;
begin
end;
[/DELPHI]
dann sieht das so aus
Delphi-Quellcode:
procedure Foo;
begin
end;

Finki 3. Jul 2013 13:04

AW: Memo text ausdrucken
 
Zitat:

implementation
* uses
*** Text_U;
{$R *.lfm}

{ TForm2 }
Da ist es

Finki 3. Jul 2013 13:06

AW: Memo text ausdrucken
 
Delphi-Quellcode:

unit Text_U;


//Scrollen Hinzufügen
//Drucken


{$mode objfpc}{$H+}

interface

uses
* Classes, SysUtils, FileUtil, PrintersDlgs, Forms, Controls, Graphics, Dialogs,
* StdCtrls, ComCtrls, Buttons, EditBtn, ExtCtrls, PopupNotifier, Printers, Windows,
* Menus, Grids;

type

* { TForm1 }

* TForm1 = class(TForm)
*** btn1: TButton;
*** btnNeu: TSpeedButton;
*** ColorDialog1: TColorDialog;
*** Image1: TImage;
*** Memo: TMemo;
*** OpenDialog1: TOpenDialog;
*** btnEinfuegen: TSpeedButton;
*** OpenDialog2: TOpenDialog;
*** PopUp: TPopupNotifier;
*** PrintDialog1: TPrintDialog;
*** SaveDialog1: TSaveDialog;
*** btnOeffnen: TSpeedButton;
*** btnTxtFarbe: TSpeedButton;
*** btnSave: TSpeedButton;
*** btnPrint: TSpeedButton;
*** TabCon: TTabControl;
*** TBar: TToolBar;
*** procedure btn1Click(Sender: TObject);
*** procedure btnEinfuegenClick(Sender: TObject);
*** procedure btnNeuClick(Sender: TObject);
*** procedure btnOeffnenClick(Sender: TObject);
*** procedure btnSaveClick(Sender: TObject);
*** procedure btnTxtFarbeClick(Sender: TObject);
*** procedure FormCreate(Sender: TObject);
*** procedure btnPrintClick(Sender: TObject);
*** procedure TabConChange(Sender: TObject);

* private
*** { private declarations }
* public
* procedure Drucken(sl: TStrings);
*** { public declarations }
* end;

var
* Form1: TForm1;
* MyDataFile : string ;
* MyDataFile2 : string ;
* merk : boolean;
* Memo: TMemo;
* Printer: TPrinter;
implementation
uses
* Frage_U;
{$R *.lfm}

{ TForm1 }


//ERSTELLEN

procedure TForm1.FormCreate(Sender: TObject);
begin

* merk:=false;

* Memo.Caption := '';
* Memo.SetBounds(0,TabCon.Height,Form1.Width,Form1.Height-TabCon.Height);
//TabCon
* TabCon.SetBounds(0,0,Form1.Width,73);
* TBar.SetBounds(0,0,Form1.Width,40);
//btn1
* btn1.SetBounds(100,100,50,50);
* btn1.Visible:=false;
//btnTxtFarbe
* btnTxtFarbe.SetBounds(0,0,75,38);
* btnTxtFarbe.Visible:=false;
* btnTxtFarbe.Caption:='Farbe';
//btnEinfügen
* btnEinfuegen.SetBounds(0,0,75,38);
* btnEinfuegen.Visible:=false;
* btnEinfuegen.Caption:='Bild';
//btnSave
* btnSave.SetBounds(btnNeu.BoundsRect.Right+1,0,75,38);
//btnÖffnen
* btnOeffnen.SetBounds(btnSave.BoundsRect.Right+1,0,75,38);
* btnOeffnen.Caption:='Öffnen';
//btnPrint
* btnPrint.SetBounds(btnOeffnen.BoundsRect.Right+1,0,75,38);
* btnPrint.Caption:='Drucken';

end;
//DRUCKEN
procedure TForm1.btnPrintClick(Sender: TObject);
begin

Drucken(Memo.Lines);

end;


procedure TForm1.Drucken(sl: TStrings);
var zeile, x, y: integer;
breite, hoehe, randlinks, randoben: integer;
begin
if PrintDialog1.Execute then
begin
** Printer.BeginDoc; //Druckjob beginnen
** SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm

** //Schrift-Einstellungen:

** Printer.Canvas.Font.Name:='Courier New';
** Printer.Canvas.Brush.Color:=clWhite;
** Printer.Canvas.Font.Height:=50; //5 mm

** //Blattgöße in 1/10 mm ermitteln:
** breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
** hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
** randlinks:=60; //0,6 cm
** randoben:=150; //1,5 cm
** x:=randlinks;
** y:=randoben*-1;
** for zeile:=0 to sl.Count-1 do
**** begin
****** if -y>(hoehe-2*randoben) then
********* begin
********* y:=randoben*-1;
********* Printer.NewPage;
********* end;
****** if y=-randoben then
********* begin
********* Printer.Canvas.Font.Style:=[fsbold];
********* Printer.Canvas.TextOut(x, y, 'Seite '+
********* IntToStr(Printer.PageNumber));
********* Printer.Canvas.Font.Style:=[];
********* y:=y-Printer.Canvas.TextHeight(sl[zeile]);
********* end;
**** Printer.Canvas.TextOut(x, y, sl[zeile]);
**** y:=y-Printer.Canvas.TextHeight(sl[zeile]);
**** end;
** Printer.EndDoc;
end;
end;

//LEISTE

procedure TForm1.TabConChange(Sender: TObject);
begin

* btnSave.Visible:=false;
* btnNeu.Visible:=false;
* btnEinfuegen.Visible:=false;
* btnOeffnen.Visible:=false;
* btnTxtFarbe.Visible:=false;
* btnPrint.Visible:=false;

** case TabCon.TabIndex of
** 0: begin
****** btnNeu.Visible:=true;
****** btnOeffnen.Visible:=true;
****** btnSave.Visible:=true;
****** btnPrint.Visible:=true;
***** end;
** 1: begin
****** btnEinfuegen.Visible:=true;
***** end;
** 2: begin
****** btnTxtFarbe.Visible:=true;
***** end;
** end;
end;

//NEU

procedure TForm1.btnNeuClick(Sender: TObject);
var
* Form2: TForm;
begin
//Form2 Erstellen
Form2 := TForm2.Create(Self);
try
* //Wenn Memo vorhanden
* if merk=false then

**** begin
******** Form2.ShowOnTop;
******** Form2.SetBounds(840-200,525-50,400,100);
******** Form1.Enabled:=false;
**** end
* //Wenn Memo nicht vorhanden
* else
*** begin
* merk:=false;
* Memo.Caption := '';
* Memo.SetBounds(0,TabCon.Height,Form1.Width,Form1.Height-TabCon.Height);
*** end;
finally
end;
end;

//ÖFFNEN

procedure TForm1.btnOeffnenClick(Sender: TObject);
begin
//Nur .txt Dateien werden angezeigt
OpenDialog2.Filter := 'Text|*.txt' ;
//Öffnen befehl

if OpenDialog2.Execute then
** begin
MyDataFile2 := OpenDialog2.FileName ;
** end;

//Memo wird erstellt
Memo.SetBounds(0,Form1.Top-TabCon.BoundsRect.Bottom,Form1.Width,Form1.Height-TabCon.Height);
Memo.Lines.LoadFromFile(MyDataFile2);
merk:=false;
end;

//SAVE

procedure TForm1.btnSaveClick(Sender: TObject);
begin
* SaveDialog1.Execute;
* Memo.Lines.SaveToFile( Form1.SaveDialog1.Filename + '.txt');
end;

//FARBE

procedure TForm1.btnTxtFarbeClick(Sender: TObject);
begin
* ColorDialog1.Execute;
*// Memo.Font.Color:=ColorDialog1.Color;
end;

//BILD EINFÜGEN

procedure TForm1.btnEinfuegenClick(Sender: TObject);
var
* Image: TImage;
begin
* OpenDialog1.Filter := 'Bilder|*.jpg;*.png;*.jpeg;*.bmp' ;
* if OpenDialog1.Execute then
**** begin
* MyDataFile := OpenDialog1.FileName ;

* Image:=TImage.Create(Self);
* Image.Parent := Self;
* Image.AutoSize:=true;
* Image.Picture.LoadFromFile(MyDataFile);
* Image.Enabled:=true;
**** end;
end;

//SINNLOSER BUTTON

procedure TForm1.btn1Click(Sender: TObject);
begin

//PopUp

* { if klaus=true then
***** begin
******* PopUp.Destroy;
******* klaus:=false;
***** end
** else
** begin

** PopUp.ShowAtPos(Form1.BoundsRect.Left+btn1.BoundsRect.Right-5,Form1.BoundsRect.Top+btn1.BoundsRect.Top-50);
** PopUp.Text:='dieser Button hat keinen Sinn :D';
** PopUp.Title:='Hilfe zu' + ' ' + btn1.Name;
** klaus:=true;
** end; }
end;

end.


{var
* Button: TButton;
begin
* Button:=TButton.Create(Self);
* Button.Parent := Self;
* Button.Caption := 'Alter Titel';
* Button.Left := 100;
* Button.Top := 100;
* Button.OnClick := Button2Click;
end;*** }
Delphi-Quellcode:
unit Frage_u;

{$mode objfpc}{$H+}

interface

uses
* Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, EditBtn, ExtCtrls;
type

* { TForm2 }

* TForm2 = class(TForm)
*** btnNein: TSpeedButton;
*** btnJa: TSpeedButton;
*** procedure btnJaClick(Sender: TObject);
*** procedure btnNeinClick(Sender: TObject);
*** procedure FormCreate(Sender: TObject);
* private
*** { private declarations }
* public
*** { public declarations }
* end;

var
* Form2: TForm2;
* lblSpeichern: TLabel;

implementation
* uses
*** Text_U;
{$R *.lfm}

{ TForm2 }

procedure TForm2.FormCreate(Sender: TObject);
begin
** Form2.SetBounds(840-200,525-50,400,100);
//** Form2.SetBounds(840-200,525-50,400,100);
** Form2.Caption:='Speichern?';

** lblSpeichern:=TLabel.Create(Self);
** lblSpeichern.Parent := Self;
** lblSpeichern.SetBounds(30,25,350,25);
** lblSpeichern.Caption:='Sie hab noch ein Dokument offen. Wollen sie dieses zuerst speichern?';

** btnJa.SetBounds(135,60,60,30);
** btnJa.Caption:='&Ja';

** btnNein.SetBounds(btnJa.BoundsRect.Right+10,60,60,30);
** btnNein.Caption:='&Nein';

end;

procedure TForm2.btnNeinClick(Sender: TObject);
begin
//** Form1 := TForm1.Can;
** Form1.Enabled:=true;
** Form1.ShowOnTop;
** Close;
* // Form2.Visible:=false;

end;

procedure TForm2.btnJaClick(Sender: TObject);
var
* var1: integer;
begin

** for var1:=1 to 1 do
** begin
**** Form1.SaveDialog1.Execute;
**** Form1.Memo.Lines.SaveToFile( Form1.SaveDialog1.Filename + '.txt');
**** merk:=true;
** end;

**** Form1.Memo.Caption:='';
**** Form1.Enabled:=true;
**** Form1.ShowOnTop;

**** merk:=false;
* {** Form1.Memo:=TMemo.Create(Self);
**** Form1.Memo.Parent := Form1;

**** Form1.Memo.Caption := '';* }
**** Form1.Memo.SetBounds(0,Form1.TabCon.Height,Form1.Width,Form1.Height-Form1.TabCon.Height);

**** Close;
end;

end.

Sir Rufo 3. Jul 2013 13:08

AW: Memo text ausdrucken
 
@Finki

Du kannst deine Beiträge 24h bearbeiten
und die * haben im Quelltext doch auch nichts verloren (oder braucht dein Compiler das?)

Finki 3. Jul 2013 13:18

AW: Memo text ausdrucken
 
Ich hab da auch gar keine Sternchen in meinem Quellcode weis nicht woher die kommen

baumina 3. Jul 2013 13:21

AW: Memo text ausdrucken
 
Nimm folgende 2 globalen Variaben raus :
Delphi-Quellcode:
var
  Form1: TForm1;
  MyDataFile : string ;
  MyDataFile2 : string ;
  merk : boolean;
//  Memo: TMemo;   <- WEG DAMIT
//  Printer: TPrinter; <- WEG DAMIT

Sir Rufo 3. Jul 2013 13:25

AW: Memo text ausdrucken
 
Zitat:

Zitat von Finki (Beitrag 1220586)
Ich hab da auch gar keine Sternchen in meinem Quellcode weis nicht woher die kommen

Ja, dann kann man da wohl nichts machen ... :roll:
(ok, man könnte den Beitrag bearbeiten und diese Sternchen entfernen, aber das wäre zu einfach)

Finki 3. Jul 2013 14:43

AW: Memo text ausdrucken
 
Ich mache daheim man die leerzeichen raus dann müsste es ja gehen

Finki 3. Jul 2013 14:57

AW: Memo text ausdrucken
 
Sodächen hier hammers ja


Delphi-Quellcode:
unit Text_U;


//Scrollen Hinzufügen
//Drucken


{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, FileUtil, PrintersDlgs, Forms, Controls, Graphics, Dialogs,
StdCtrls, ComCtrls, Buttons, EditBtn, ExtCtrls, PopupNotifier, Printers, Windows,
Menus, Grids;

type

{ TForm1 }

TForm1 = class(TForm)
btn1: TButton;
btnNeu: TSpeedButton;
ColorDialog1: TColorDialog;
Image1: TImage;
Memo: TMemo;
OpenDialog1: TOpenDialog;
btnEinfuegen: TSpeedButton;
OpenDialog2: TOpenDialog;
PopUp: TPopupNotifier;
PrintDialog1: TPrintDialog;
SaveDialog1: TSaveDialog;
btnOeffnen: TSpeedButton;
btnTxtFarbe: TSpeedButton;
btnSave: TSpeedButton;
btnPrint: TSpeedButton;
TabCon: TTabControl;
TBar: TToolBar;
procedure btn1Click(Sender: TObject);
procedure btnEinfuegenClick(Sender: TObject);
procedure btnNeuClick(Sender: TObject);
procedure btnOeffnenClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnTxtFarbeClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure btnPrintClick(Sender: TObject);
procedure TabConChange(Sender: TObject);

private
{ private declarations }
public
procedure Drucken(sl: TStrings);
{ public declarations }
end;

var
Form1: TForm1;
MyDataFile : string ;
MyDataFile2 : string ;
merk : boolean;
Printer: TPrinter;
implementation
uses
  Frage_U;
{$R *.lfm}

{ TForm1 }


//ERSTELLEN

procedure TForm1.FormCreate(Sender: TObject);
begin

merk:=false;

Memo.Caption := '';
Memo.SetBounds(0,TabCon.Height,Form1.Width,Form1.Height-TabCon.Height);
//TabCon
TabCon.SetBounds(0,0,Form1.Width,73);
TBar.SetBounds(0,0,Form1.Width,40);
//btn1
btn1.SetBounds(100,100,50,50);
btn1.Visible:=false;
//btnTxtFarbe
btnTxtFarbe.SetBounds(0,0,75,38);
btnTxtFarbe.Visible:=false;
btnTxtFarbe.Caption:='Farbe';
//btnEinfügen
btnEinfuegen.SetBounds(0,0,75,38);
btnEinfuegen.Visible:=false;
btnEinfuegen.Caption:='Bild';
//btnSave
btnSave.SetBounds(btnNeu.BoundsRect.Right+1,0,75,38);
//btnÖffnen
btnOeffnen.SetBounds(btnSave.BoundsRect.Right+1,0,75,38);
btnOeffnen.Caption:='Öffnen';
//btnPrint
btnPrint.SetBounds(btnOeffnen.BoundsRect.Right+1,0,75,38);
btnPrint.Caption:='Drucken';

end;
//DRUCKEN
procedure TForm1.btnPrintClick(Sender: TObject);
begin

Drucken(Memo.Lines);

end;


procedure TForm1.Drucken(sl: TStrings);
var zeile, x, y: integer;
breite, hoehe, randlinks, randoben: integer;
begin
if PrintDialog1.Execute then
begin
Printer.BeginDoc; //Druckjob beginnen
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm
//Schrift-Einstellungen:

Printer.Canvas.Font.Name:='Courier New';
Printer.Canvas.Brush.Color:=clWhite;
Printer.Canvas.Font.Height:=50; //5 mm

//Blattgöße in 1/10 mm ermitteln:
breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
randlinks:=60; //0,6 cm
randoben:=150; //1,5 cm
x:=randlinks;
y:=randoben*-1;
for zeile:=0 to sl.Count-1 do
begin
if -y>(hoehe-2*randoben) then
begin
y:=randoben*-1;
Printer.NewPage;
end;
if y=-randoben then
begin
Printer.Canvas.Font.Style:=[fsbold];
Printer.Canvas.TextOut(x, y, 'Seite '+
IntToStr(Printer.PageNumber));
Printer.Canvas.Font.Style:=[];
y:=y-Printer.Canvas.TextHeight(sl[zeile]);
end;
Printer.Canvas.TextOut(x, y, sl[zeile]);
y:=y-Printer.Canvas.TextHeight(sl[zeile]);
end;
Printer.EndDoc;
end;
end;

//LEISTE

procedure TForm1.TabConChange(Sender: TObject);
begin

btnSave.Visible:=false;
btnNeu.Visible:=false;
btnEinfuegen.Visible:=false;
btnOeffnen.Visible:=false;
btnTxtFarbe.Visible:=false;
btnPrint.Visible:=false;

case TabCon.TabIndex of
0: begin
btnNeu.Visible:=true;
btnOeffnen.Visible:=true;
btnSave.Visible:=true;
btnPrint.Visible:=true;
end;
1: begin
btnEinfuegen.Visible:=true;
end;
2: begin
btnTxtFarbe.Visible:=true;
end;
end;
end;

//NEU

procedure TForm1.btnNeuClick(Sender: TObject);
var
Form2: TForm;
begin
//Form2 Erstellen
Form2 := TForm2.Create(Self);
try
//Wenn Memo vorhanden
if merk=false then

begin
Form2.ShowOnTop;
Form2.SetBounds(840-200,525-50,400,100);
Form1.Enabled:=false;
end
//Wenn Memo nicht vorhanden
else
begin
merk:=false;
Memo.Caption := '';
Memo.SetBounds(0,TabCon.Height,Form1.Width,Form1.Height-TabCon.Height);
end;
finally
end;
end;

//ÖFFNEN

procedure TForm1.btnOeffnenClick(Sender: TObject);
begin
//Nur .txt Dateien werden angezeigt
OpenDialog2.Filter := 'Text|*.txt' ;
//Öffnen befehl

if OpenDialog2.Execute then
begin
MyDataFile2 := OpenDialog2.FileName ;
end;

//Memo wird erstellt
Memo.SetBounds(0,Form1.Top-TabCon.BoundsRect.Bottom,Form1.Width,Form1.Height-TabCon.Height);
Memo.Lines.LoadFromFile(MyDataFile2);
merk:=false;
end;

//SAVE

procedure TForm1.btnSaveClick(Sender: TObject);
begin
SaveDialog1.Execute;
Memo.Lines.SaveToFile( Form1.SaveDialog1.Filename + '.txt');
end;

//FARBE

procedure TForm1.btnTxtFarbeClick(Sender: TObject);
begin
ColorDialog1.Execute;
// Memo.Font.Color:=ColorDialog1.Color;
end;

//BILD EINFÜGEN

procedure TForm1.btnEinfuegenClick(Sender: TObject);
var
Image: TImage;
begin
OpenDialog1.Filter := 'Bilder|*.jpg;*.png;*.jpeg;*.bmp' ;
if OpenDialog1.Execute then
begin
MyDataFile := OpenDialog1.FileName ;

Image:=TImage.Create(Self);
Image.Parent := Self;
Image.AutoSize:=true;
Image.Picture.LoadFromFile(MyDataFile);
Image.Enabled:=true;
end;
end;

//NOCH SINNLOSER BUTTON

procedure TForm1.btn1Click(Sender: TObject);
begin

end;

end.


{var
Button: TButton;
begin
Button:=TButton.Create(Self);
Button.Parent := Self;
Button.Caption := 'Alter Titel';
Button.Left := 100;
Button.Top := 100;
Button.OnClick := Button2Click;
end;   }

Delphi-Quellcode:
unit Frage_u;

{$mode objfpc}{$H+}

interface

usesClasses, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls, Buttons, EditBtn, ExtCtrls;
type
{ TForm2 }
TForm2 = class(TForm)btnNein: TSpeedButton;btnJa: TSpeedButton;
procedure btnJaClick(Sender: TObject);
procedure btnNeinClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;

var
Form2: TForm2;
lblSpeichern: TLabel;

implementation
uses
Text_U;
{$R *.lfm}

{ TForm2 }

procedure TForm2.FormCreate(Sender: TObject);
begin
Form2.SetBounds(840-200,525-50,400,100);
//   Form2.SetBounds(840-200,525-50,400,100);
Form2.Caption:='Speichern?';

lblSpeichern:=TLabel.Create(Self);
lblSpeichern.Parent := Self;
lblSpeichern.SetBounds(30,25,350,25);
lblSpeichern.Caption:='Sie hab noch ein Dokument offen. Wollen sie dieses zuerst speichern?';

btnJa.SetBounds(135,60,60,30);
btnJa.Caption:='&Ja';

btnNein.SetBounds(btnJa.BoundsRect.Right+10,60,60,30);
btnNein.Caption:='&Nein';

end;

procedure TForm2.btnNeinClick(Sender: TObject);
begin
//   Form1 := TForm1.Can;
Form1.Enabled:=true;
Form1.ShowOnTop;
Close;
// Form2.Visible:=false;

end;

procedure TForm2.btnJaClick(Sender: TObject);
var
var1: integer;
begin

for var1:=1 to 1 do
begin
Form1.SaveDialog1.Execute;
Form1.Memo.Lines.SaveToFile( Form1.SaveDialog1.Filename + '.txt');
merk:=true;
end;

Form1.Memo.Caption:='';
Form1.Enabled:=true;
Form1.ShowOnTop;

merk:=false;
{   Form1.Memo:=TMemo.Create(Self);
Form1.Memo.Parent := Form1;

Form1.Memo.Caption := ''; }
Form1.Memo.SetBounds(0,Form1.TabCon.Height,Form1.Width,Form1.Height-Form1.TabCon.Height);

Close;
end;

end.

baumina 3. Jul 2013 15:07

AW: Memo text ausdrucken
 
Zitat:

Zitat von Finki (Beitrag 1220606)
Sodächen hier hammers ja

Prima, jetzt sind alle Einrückungen weg und Printer : TPrinter steht immernoch drin:

Delphi-Quellcode:
var
//Printer: TPrinter; <- WEG DAMIT !

Finki 3. Jul 2013 15:12

AW: Memo text ausdrucken
 
Ja sry war mein Fehler

Ich habs draussen gehabt aber dann kam ein anderer Fehler.

hätte ich vielleicht dazu schreiben sollen

Finki 3. Jul 2013 17:57

AW: Memo text ausdrucken
 
Zitat:

Zitat von MrMooed (Beitrag 1220471)
An welcher Stelle kommt denn der Fehler genau? einfach mal einen Brakepoint nach dem Begin setzen (in die Zeile klicken, F5 drücken) und dann durch den Code bewegen (F8)

Sobald der im Befehl Printer.BeginDoc is :D :?: komisch oder

Sir Rufo 3. Jul 2013 18:04

AW: Memo text ausdrucken
 
Zitat:

Zitat von Finki (Beitrag 1220642)
Zitat:

Zitat von MrMooed (Beitrag 1220471)
An welcher Stelle kommt denn der Fehler genau? einfach mal einen Brakepoint nach dem Begin setzen (in die Zeile klicken, F5 drücken) und dann durch den Code bewegen (F8)

Sobald der im Befehl Printer.BeginDoc is :D :?: komisch oder

Wenn du in deinem Code stehen hast
Delphi-Quellcode:
var
  Printer : TPrinter;
und dann irgendwo danach
Delphi-Quellcode:
Printer.BeginDoc;
dann ist es doch mehr als logisch, dass dir da eine Zugriffsverletzung um die Ohren gehauen wird.
Oder hast du irgendwo in deinem Code der Variablen eine Instanz zugewiesen?

Automatisch passiert das nämlich nicht.

:!: Diese Printer-Variable muss weg, definitiv


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 Uhr.
Seite 1 von 2  1 2      

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