unit sys;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, ComCtrls, ToolWin, ImgList, StdCtrls;
type
TForm1 =
class(TForm)
MainMenu1: TMainMenu;
Datei1: TMenuItem;
NeuesDokument1: TMenuItem;
Dokumentffnen1: TMenuItem;
Speichern1: TMenuItem;
N1: TMenuItem;
Drucken1: TMenuItem;
N2: TMenuItem;
Beenden1: TMenuItem;
ImageList1: TImageList;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
ToolButton8: TToolButton;
ToolButton9: TToolButton;
ToolButton10: TToolButton;
edit: TRichEdit;
StatusBar: TStatusBar;
op1: TOpenDialog;
save: TSaveDialog;
print: TPrintDialog;
font: TFontDialog;
Bearbeiten1: TMenuItem;
Rckgngig1: TMenuItem;
N3: TMenuItem;
Ausschneiden1: TMenuItem;
Kopieren1: TMenuItem;
Einfgen1: TMenuItem;
FontName: TComboBox;
BoldButton: TToolButton;
UnderlineButton: TToolButton;
ItalicButton: TToolButton;
FontSize: TEdit;
UpDown1: TUpDown;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton18: TToolButton;
ToolButton19: TToolButton;
Colors: TColorDialog;
Color: TComboBox;
ToolButton14: TToolButton;
ToolButton15: TToolButton;
ToolButton16: TToolButton;
function GetColor(idx: Integer): TColor;
procedure speichern;
procedure Beenden1Click(Sender: TObject);
procedure NeuesDokument1Click(Sender: TObject);
procedure ToolButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolButton2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolButton3MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolButton4MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolButton6MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolButton7MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolButton8MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure ToolButton9MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Dokumentffnen1Click(Sender: TObject);
procedure Speichernunter1Click(Sender: TObject);
procedure Speichern1Click(Sender: TObject);
procedure Drucken1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Rckgngig1Click(Sender: TObject);
procedure Ausschneiden1Click(Sender: TObject);
procedure Kopieren1Click(Sender: TObject);
procedure Einfgen1Click(Sender: TObject);
procedure BoldButtonClick(Sender: TObject);
procedure ItalicButtonClick(Sender: TObject);
procedure UnderlineButtonClick(Sender: TObject);
procedure FontNameChange(Sender: TObject);
procedure ToolButton18Click(Sender: TObject);
procedure FontSizeChange(Sender: TObject);
procedure FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
procedure ColorChange(Sender: TObject);
procedure AlignButtonClick(Sender: TObject);
procedure editSelectionChange(Sender: TObject);
procedure ToolButton14Click(Sender: TObject);
procedure ToolButton15Click(Sender: TObject);
procedure ToolButton16Click(Sender: TObject);
private
{ Private-Deklarationen }
FUpdating: Boolean;
function CurrText: TTextAttributes;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
col: TColor;
implementation
{$R *.DFM}
function TForm1.GetColor(idx: Integer): TColor;
begin
case idx
of
0 : result := clBlack;
1 : result := clMaroon;
2 : result := clGreen;
3 : result := clOlive;
4 : result := clNavy;
5 : result := clPurple;
6 : result := clGray;
7 : result := clSilver;
8 : result := clRed;
9 : result := clLime;
10 : result := clYellow;
11 : result := clFuchsia;
12 : result := clAqua;
13 : result := clWhite;
14 : result := clScrollBar;
15 : result := clBackground;
end;
end;
function TForm1.CurrText: TTextAttributes;
begin
if edit.SelLength > 0
then Result := edit.SelAttributes
else Result := edit.DefAttributes;
end;
procedure TForm1.Beenden1Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.speichern;
begin
if FileExists(save.filename)
then
edit.lines.savetofile(save.Filename)
else begin
if (save.Execute)
then
edit.Lines.SaveToFile(save.filename);
end;
end;
procedure TForm1.NeuesDokument1Click(Sender: TObject);
begin
edit.clear;
end;
procedure TForm1.ToolButton1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Neues Dokument erstellen';
end;
procedure TForm1.ToolButton2MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Dokument öffnen';
end;
procedure TForm1.ToolButton3MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Neues Dokument speichern';
end;
procedure TForm1.ToolButton4MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Dokument drucken';
end;
procedure TForm1.ToolButton6MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Ausschneiden';
end;
procedure TForm1.ToolButton7MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Kopieren';
end;
procedure TForm1.ToolButton8MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Einfügen';
end;
procedure TForm1.ToolButton9MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
StatusBar.Panels[0].Text:= '
Rückgängig';
end;
procedure TForm1.Dokumentffnen1Click(Sender: TObject);
begin
if op1.Execute
then
Edit.Lines.LoadFromFile(op1.filename);
end;
procedure TForm1.Speichernunter1Click(Sender: TObject);
begin
if save.Execute
then
edit.Lines.SaveToFile(save.filename);
end;
procedure TForm1.Speichern1Click(Sender: TObject);
begin
speichern;
end;
procedure TForm1.Drucken1Click(Sender: TObject);
begin
try
if print.Execute
then
begin
edit.Text := Text;
edit.Print ('
Text');
end;
except
ShowMessage ('
Kein Drucker verfügbar!');
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FontName.Items:= Screen.Fonts;
FontName.Text:= '
Arial';
end;
procedure TForm1.Rckgngig1Click(Sender: TObject);
begin
with edit
do
if HandleAllocated
then SendMessage(
Handle, EM_UNDO, 0, 0);
end;
procedure TForm1.Ausschneiden1Click(Sender: TObject);
begin
edit.CutToClipboard;
end;
procedure TForm1.Kopieren1Click(Sender: TObject);
begin
edit.CopyToClipboard;
end;
procedure TForm1.Einfgen1Click(Sender: TObject);
begin
edit.PasteFromClipboard;
end;
procedure TForm1.BoldButtonClick(Sender: TObject);
begin
if FUpdating
then Exit;
if BoldButton.Down
then
CurrText.Style := CurrText.Style + [fsBold]
else
CurrText.Style := CurrText.Style - [fsBold];
end;
procedure TForm1.ItalicButtonClick(Sender: TObject);
begin
if FUpdating
then Exit;
if ItalicButton.Down
then
CurrText.Style := CurrText.Style + [fsItalic]
else
CurrText.Style := CurrText.Style - [fsItalic];
end;
procedure TForm1.UnderlineButtonClick(Sender: TObject);
begin
if FUpdating
then Exit;
if UnderlineButton.Down
then
CurrText.Style := CurrText.Style + [fsUnderline]
else
CurrText.Style := CurrText.Style - [fsUnderline];
end;
procedure TForm1.FontNameChange(Sender: TObject);
begin
if FUpdating
then Exit;
CurrText.
Name := FontName.Items[FontName.ItemIndex];
end;
procedure TForm1.ToolButton18Click(Sender: TObject);
begin
if FUpdating
then Exit;
edit.Paragraph.Numbering := TNumberingStyle(ToolButton18.Down);
end;
procedure TForm1.FontSizeChange(Sender: TObject);
begin
if FUpdating
then Exit;
CurrText.Size := StrToInt(FontSize.Text);
end;
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
case MessageDlg('
Änderungen speichern?',mtConfirmation, mbYesNoCancel, 0)
OF
mrYes : speichern;
mrNo : CanClose := true;
end;
end;
procedure TForm1.ColorChange(Sender: TObject);
begin
CurrText.Color := getcolor(Color.ItemIndex);
end;
procedure TForm1.AlignButtonClick(Sender: TObject);
begin
if FUpdating
then Exit;
edit.Paragraph.Alignment := TAlignment(TControl(Sender).Tag);
end;
procedure TForm1.editSelectionChange(Sender: TObject);
begin
case edit.Paragraph.Alignment
of
taLeftJustify:
begin Toolbutton14.Down:=true; Toolbutton15.Down:=false; Toolbutton16.Down:=false;
end;
taCenter:
begin Toolbutton15.Down:=true; Toolbutton14.Down:=false; Toolbutton16.Down:=false;
end;
taRightJustify:
begin Toolbutton16.Down:=true; Toolbutton14.Down:=false; Toolbutton15.Down:=false;
end;
end;
end;
procedure TForm1.ToolButton14Click(Sender: TObject);
begin
ToolButton15.Down:= false;
ToolButton16.Down:= false;
edit.Paragraph.Alignment:=taLeftJustify;
end;
procedure TForm1.ToolButton15Click(Sender: TObject);
begin
ToolButton14.Down:= false;
ToolButton16.Down:= false;
edit.Paragraph.Alignment:=taCenter;
end;
procedure TForm1.ToolButton16Click(Sender: TObject);
begin
ToolButton14.Down:= false;
ToolButton15.Down:= false;
edit.Paragraph.Alignment:=taRightJustify;
end;
end.