Hier die EditorUnit1.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."); } //---------------------------------------------------------------------------