AGB  ·  Datenschutz  ·  Impressum  







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

Memo text ausdrucken

Ein Thema von Finki · begonnen am 2. Jul 2013 · letzter Beitrag vom 4. Jul 2013
Antwort Antwort
Seite 1 von 2  1 2      
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#1

AW: Memo text ausdrucken

  Alt 2. Jul 2013, 18:02
Es sollte genügen, wenn du die TPrintersDialog Komponente (unter dem Reiter 'Dialoge') auf das Formular ziehst
hab ich gemacht!!

(nur 'PrintersDlgs' in die uses einzufügen klappt irgendwie nicht )
logisch weiß ich doch
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Memo text ausdrucken

  Alt 2. Jul 2013, 18:15
Also .. bei mir klappt es wie's Brezelbacken

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)
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 06:20
Kann es evtl daran liegen das meine memo componente erst während dem ausführen des Programms erstellt wird?
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 08:54
Schau eventl. mal hier (ganz unten).

MfG
Thomas
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 12:25
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?
  Mit Zitat antworten Zitat
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 12:31
vielleicht findet sich ja beim debuggen etwas
Und mich interessiert langsam, was da bei dir nicht klappt
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 12:39
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.
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 17:57
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 komisch oder
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 18:04
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 komisch oder
Wenn du in deinem Code stehen hast
Delphi-Quellcode:
var
  Printer : TPrinter;
und dann irgendwo danach
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Memo text ausdrucken

  Alt 3. Jul 2013, 18:30
Gut jetzt kommt der fehler siehe Bild und da steht

Delphi-Quellcode:
function TControl.GetText: TCaption;
var
  len: Integer;
  GetTextMethod: TMethod;
begin
  // Check if GetTextBuf is overridden, otherwise we can call RealGetText directly
  Assert(Assigned(@Self.GetTextBuf), 'TControl.GetText: GetTextBuf Method is Nil');
  GetTextMethod := TMethod(@Self.GetTextBuf); //<-- VERWEIS AUF DIESE ZEILE
  if GetTextMethod.Code = Pointer(@TControl.GetTextBuf) then begin
    Result := RealGetText;
  end
  else begin
    // Bummer, we have to do it the compatible way.
    DebugLn('Note: GetTextBuf is overridden for: ', Classname);
    len := GetTextLen;
    if len = 0 then begin
      Result := '';
    end
    else begin
      SetLength(Result, len+1); // make sure there is room for the extra #0
      FillChar(Result[1], len, #0);
      len := GetTextBuf(@Result[1], len+1);
      SetLength(Result, len);
    end;
  end;
end;
Angehängte Grafiken
Dateityp: jpg PrintError3.jpg (38,5 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 07:58 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