![]() |
AW: Memo text ausdrucken
|
AW: Memo text ausdrucken
Zitat:
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? |
AW: Memo text ausdrucken
vielleicht findet sich ja beim debuggen etwas :cyclops:
Und mich interessiert langsam, was da bei dir nicht klappt |
AW: Memo text ausdrucken
Also gut? Reicht der code?
Text_U
Code:
Frage_uunit Text_U; //Scrollen Hinzufügen {$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; 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;*** }
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. |
AW: Memo text ausdrucken
Die globale Variable "Memo" wegmachen, denn du hast schon eine Variable mit dem Namen "Memo" in Form1.
|
AW: Memo text ausdrucken
Zitat:
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) |
AW: Memo text ausdrucken
Ja weis ich ich hatte anfangs die memo erst im Programm Verlauf erstellt. Aber das ändert nichts oder?
|
AW: Memo text ausdrucken
Zitat:
Delphi-Quellcode:
ist eingebunden.
Text_U
@Finki Bitte entferne doch die ganzen * in dem Code und benutze die Delphi-Tags
Code:
dann sieht das so aus
[DELPHI]
procedure Foo; begin end; [/DELPHI]
Delphi-Quellcode:
procedure Foo;
begin end; |
AW: Memo text ausdrucken
Zitat:
|
AW: Memo text ausdrucken
Delphi-Quellcode:
unit Text_U; //Scrollen Hinzufügen {$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; 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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 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