Editor-Projekt

Hier die EditorUnit1.cpp

test.cpp
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include "EditorUnit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void CursorPosition(){
 
   Form1->Label1->Caption="Zeile/Spalte: "+VarToStr(1+Form1->RichEdit1->CaretPos.y)+"/"+VarToStr(1+Form1->RichEdit1->CaretPos.x);
 
}
 
void Zeichenanzahl () {
 
//Zeilenumbrüche herausrechnen
int zuviel=0;
//Gesamten Text durchgehen und Ascii-Code 13 (Zeilenumbruch) zählen
for (int pos = 1; pos <= Form1->RichEdit1->Text.Length(); pos++) {
   if (Form1->RichEdit1->Text[pos]==13)  //Wenn Zeilenumbruch
	   zuviel=zuviel+2;
}
 
Form1->Label2->Caption= "Anzahl der Zeichen: "+IntToStr(Form1->RichEdit1->Text.Length()-zuviel);
}
 
void __fastcall TForm1::Beenden1Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Speichern1Click(TObject *Sender)
{
//Execute wird ausgeführt und liefert
//beim Schließen true ("Speichern" angeklickt)
//oder false ("Abbrechen" angeklickt) zurück.
if (SaveDialog1->Execute()){
	RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
	//Dateiname wird in Caption von Form1 geschrieben
	Form1->Caption=SaveDialog1->FileName;
}
 
 
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ffnen1Click(TObject *Sender)
{
if (OpenDialog1->Execute()) {
	RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
    Form1->Caption=OpenDialog1->FileName;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Neu1Click(TObject *Sender)
{
//Löschen vom RichEdit
RichEdit1->Clear();
Form1->Caption="Unbenannt";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
CanClose=false;
int antwort;
 
//MessageBox braucht LongString
antwort=MessageBox(0,L"Programm beenden?",L"Editor",MB_YESNO|MB_ICONQUESTION);
if (antwort==IDYES) {
	//IDYES entspricht dem Wert 6   if (antwort==6) auch möglich
	CanClose=true;
}
 
}
//---------------------------------------------------------------------------
 
 
 
void __fastcall TForm1::Zeilenzahl1Click(TObject *Sender)
{
ShowMessage("Zeilenzahl: "+ IntToStr(RichEdit1->Lines->Count));
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::RichEdit1Click(TObject *Sender)
{
CursorPosition();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::RichEdit1KeyUp(TObject *Sender, WORD &Key, TShiftState Shift)
 
{
CursorPosition();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::RichEdit1Change(TObject *Sender)
{
Zeichenanzahl();
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::Buchstabenhufigkeit1Click(TObject *Sender)
{
int anzahl=0;
AnsiString wort;
char buchstabe;
wort=InputBox("Eingabe","Geben Sie den zu zählenden Buchstaben ein","");
buchstabe=wort[1];  //Erster eingegebener Buchstabe zählt.
//Mittels for-Schleife jeden Buchstaben vegleichen und bei Bedarf
//Zähler erhöhen.
for (int pos=1; pos<=RichEdit1->Text.Length() ; pos++) {
   if (RichEdit1->Text[pos]==buchstabe)  //Wenn Buchstabe gefunden
	   anzahl++;
}
//Ausgabe der Anzahl mittels ShowMessage
ShowMessage("Der Buchstabe "+(AnsiString)buchstabe+" kommt "+ IntToStr(anzahl)+" mal vor.");
}
//---------------------------------------------------------------------------