unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Printers;
type
TForm1 =
class(TForm)
Datum: TEdit;
Label1: TLabel;
Label2: TLabel;
Seitenzahlen: TEdit;
Speichern: TButton;
Titel: TEdit;
RichEdit1: TRichEdit;
nach_links_einruecken: TButton;
nach_rechts_ausruecken: TButton;
Edit3: TEdit;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Button3: TButton;
Nummerieren_an: TButton;
Laden: TButton;
procedure TextClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
function Prüfen(Hilfsvar : integer; Text :
String;
var Örtchen :
String) :boolean;
procedure nach_links_einrueckenClick(Sender: TObject);
procedure SpeichernClick(Sender: TObject);
procedure nach_rechts_ausrueckenClick(Sender: TObject);
procedure RichEdit1Change(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure TitelClick(Sender: TObject);
procedure Neu;
procedure Button3Click(Sender: TObject);
procedure Nummerieren_anClick(Sender: TObject);
procedure LadenClick(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
Pfad :
String;
Ort_In :
String;
gespeichert : boolean ;
const ext = '
.rtf';
implementation
{$R *.dfm}
procedure TForm1.nach_links_einrueckenClick(Sender: TObject);
begin
nach_links_einruecken.Tag := nach_links_einruecken.Tag + 5;
Edit3.Text := IntToStr(nach_links_einruecken.Tag);
end;
procedure TForm1.nach_rechts_ausrueckenClick(Sender: TObject);
begin
nach_links_einruecken.Tag := nach_links_einruecken.Tag - 5;
Edit3.Text := IntToStr(nach_links_einruecken.Tag);
end;
procedure TForm1.Button3Click(Sender: TObject);
var
printDialog : TPrintDialog;
myPrinter : TPrinter;
i, y : integer ;
begin
// Create a printer selection dialog
printDialog := TPrintDialog.Create(Form1);
// If the user has selected a printer (or default), then print!
if printDialog.Execute
then
begin
// Use the Printer function to get access to the
// global TPrinter object.
// All references below are to the TPrinter object
myPrinter := Printer;
with myPrinter
do
begin
// Start printing
BeginDoc;
// Set up the RichEdit font
Canvas.Font := RichEdit1.Font;
// Write out the page size
Canvas.TextOut(40, 20, Titel.Text);
y := 150;
For i := 1
to RichEdit1.Lines.Count
do
begin
Canvas.TextOut(40, y, RichEdit1.Lines[i]);
y := y +130;
end;
// Finish printing
EndDoc;
end;
end;
end;
procedure TForm1.Nummerieren_anClick(Sender: TObject);
begin
RichEdit1.Paragraph.Numbering := TNumberingStyle(nsBullet);
end;
procedure TForm1.LadenClick(Sender: TObject);
var
Ort :
String ;
begin
Ort := Pfad + Seitenzahlen.Text + ext;
try
RichEdit1.Lines.LoadFromFile(Ort);
Except
ShowMessage('
Fehler');
end;
end;
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
var
buttonSelected : Integer;
begin
if gespeichert = False
then begin
buttonSelected := MessageDlg('
Willst du vorm beenden speichern ?',mtInformation ,mbYesNo,0);
if (buttonSelected = mrYes)
then
begin
if not (RichEdit1.Text[1] = '
/')
then
begin
RichEdit1.Text := (Seitenzahlen.Text+'
/'+Titel.Text+'
/'+Datum.Text+'
/'+ #13#10) + RichEdit1.Text;
Speichern.Click;
end;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
Liste : Tstringlist;
Prüfstring,TempZählsTring :
String ;
Zeile,i,Zähler : Integer;
begin
Pfad := Application.ExeName;
Pfad := Copy(Pfad,0,Length(Pfad)-4)+'
/';
Ort_In := Pfad + '
Inhaltsverzeichnis' + ext;
Datum.Text := DateToStr(Date);
Liste := Tstringlist.Create;
RichEdit1.Text := '
';
RichEdit1.Paragraph.Numbering := TNumberingStyle(nsBullet);
If (Prüfen(1,'
1/Inhaltsverzeichnis/'+Datum.Text+'
/',Ort_In) = True)
Then
begin
Liste.LoadFromFile(Ort_In);
Zeile := (Liste.Count - 1);
Prüfstring := Liste[Zeile] ;
TempZählString := '
';
i := Pos('
/',Prüfstring);
TempZählString := Copy(Prüfstring,1,i-1);
Zähler := StrToInt(TempZählString);
Inc(Zähler);
Seitenzahlen.Text := IntToSTr(Zähler);
end
else
Seitenzahlen.Text := '
1';
end;
procedure TForm1.TextClick(Sender: TObject);
begin
RichEdit1.Text := '
';
end;
procedure TForm1.TitelClick(Sender: TObject);
begin
Titel.Text := '
';
end;
function TForm1.Prüfen(Hilfsvar : integer; Text :
String;
var Örtchen :
String) :boolean;
var
Dokument : Tstringlist;
begin
Dokument:= Tstringlist.Create;
if not (FileExists(Örtchen))
then
begin
ForceDirectories(Pfad);
If (Hilfsvar = 1)
Then begin
Dokument.Add(Text);
Dokument.SaveToFile(Örtchen);
end;
Result := False;
end
Else
Result := True;
end;
procedure TForm1.Neu ;
var
Liste : Tstringlist;
Prüfstring,TempZählsTring :
String ;
Zeile,i,Zähler : Integer;
begin
Liste := TStringlist.Create;
Liste.Clear;
RichEdit1.Text := '
-';
Titel.Text := '
Stichpunkte ' + Datum.Text ;
If (Prüfen(1,'
1/Inhaltsverzeichnis/'+Datum.Text+'
/',Ort_In) = True)
Then
begin
Liste.LoadFromFile(Ort_In);
Zeile := (Liste.Count - 1);
Prüfstring := Liste[Zeile] ;
TempZählString := '
';
i := Pos('
/',Prüfstring);
TempZählString := Copy(Prüfstring,1,i-1);
Zähler := StrToInt(TempZählString);
Inc(Zähler);
Seitenzahlen.Text := IntToSTr(Zähler);
end
else
Seitenzahlen.Text := '
1';
RichEdit1.Tag := 0;
Edit3.Text := IntToStr(RichEdit1.Tag);
Edit4.Text := IntToStr(RichEdit1.Lines.Count);
end;
procedure TForm1.SpeichernClick(Sender: TObject);
var
ort :
String ;
Liste : Tstringlist;
begin
Liste := Tstringlist.Create;
Liste.LoadFromFile(Ort_In);
Liste.Add(Seitenzahlen.Text+'
/'+Titel.Text+'
/'+Datum.Text+'
/');
Liste.SaveToFile(Ort_In);
Liste.Clear;
if not (RichEdit1.Text[1] = '
/')
then
begin
RichEdit1.Text := (Seitenzahlen.Text+'
/'+Titel.Text+'
/'+Datum.Text+'
/'+ #13#10) + RichEdit1.Text;
Ort := Pfad + Seitenzahlen.Text + ext;
RichEdit1.Lines.SaveToFile(Ort);
end;
gespeichert := True ;
end;
procedure TForm1.RichEdit1Change(Sender: TObject);
var
buttonSelected : integer;
Liste : Tstringlist;
Datei :
String;
Seitenzahl : Integer ;
begin
RichEdit1.Paragraph.FirstIndent := nach_links_einruecken.Tag*4;
If (RichEdit1.Lines.Count = 41)
Then
begin
buttonSelected := MessageDlg('
Du hast Mehr geschrieben als auf eine Seite passt' +#13#10 + '
Willst du nun speichern und eine neue Datei anlegen ?',mtInformation ,mbYesNo,0);
if (buttonSelected = mrYes)
then
begin
Liste := Tstringlist.Create;
Liste.LoadFromFile(Ort_In);
Liste.Add(Seitenzahlen.Text+'
/'+Titel.Text+'
/'+ Datum.Text+'
/');
Liste.SaveToFile(Ort_In);
Liste.Clear;
Liste.Text := Titel.Text + '
/';
Liste.Add(RichEdit1.Text);
if not (RichEdit1.Text[1] = '
/')
then
begin
Datei := Pfad + Seitenzahlen.Text + ext;
Liste.SaveToFile(Datei);
end;
Titel.Text := Titel.Text + '
II';
SeitenZahl := StrToInt(Seitenzahlen.Text);
Inc(Seitenzahl);
Seitenzahlen.Text := IntToStr(SeitenZahl);
RichEdit1.Text := '
';
end;
end;
Edit4.Text := IntToStr(RichEdit1.Lines.Count);
end;
end.