Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Labs Borland С++.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.77 Mб
Скачать

2. Примеры

Пример 2.1 Составить программу, которая читает текстовый файл в Memo1, определяет количество вхождений в текст указанного символа и количество разделителей «;,:.!» и пробелов. Результаты вывести в Memo2 и записать в другой файл.

Меню Файл содержит следующие пункты:

Создать, Открыть, Сохранить, Сохранить как, Расчет, Выход

Меню Справка содержит пункт О программе

Рисунок-29. Исходная форма объекта.

T MainMenu позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение TMainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню.

TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается PopupMenu аналогично главному меню.

TImage - отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.

Листинг программы:

//---------------------------------------------------------------------------

#include <vcl.h>

#include <io.h>

#include <string.h>

#include <SysUtils.hpp>

#include <stdio.h>

#pragma hdrstop

#include "struct.h"

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

AnsiString fname="";

char buf[256]="";

//TStringList *List= new TStringList;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::AexitExecute(TObject *Sender)

{

Close();

}

//---------------------------------------------------------------------------

//открытие файла

void __fastcall TForm1::AopenExecute(TObject *Sender)

{ Edit1->Text="";

if (OpenDialog1->Execute()) {

fname=OpenDialog1->FileName;

Memo1->Lines->LoadFromFile(fname);

}

}

//---------------------------------------------------------------------------

//создание нового файла

void __fastcall TForm1::ANewExecute(TObject *Sender)

{

Memo1->Clear();

Memo2->Clear();

}

//---------------------------------------------------------------------------

// подсчет

void __fastcall TForm1::ArunExecute(TObject *Sender)

{ AnsiString del=" ;,:.!" ;

AnsiString st, st1;

int i,m=0,j=0;

Memo2->Clear();

st1=Edit1->Text; //ввести символ для поиска

for (i=0;i<=Memo1->Lines->Count;i++)

{

StrPCopy(buf,Memo1->Lines->Strings[i]);

st=buf;

for (int k=1;k<=StrLen(st.c_str());k++)

{if (IsDelimiter(del,st,k)) j++; //подсчет количества разделителей в файле

if (IsDelimiter(st1,st,k)) m++; //подсчет введенного в Edit1 символа

} }

Memo2->Lines->Add("количество символов "+Edit1->Text+" равно "+IntToStr(m));

Memo2->Lines->Add("количество разделителей "";"",:.! и пробелов равно "+IntToStr(j));

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

// сохранение файла под тем же именем

void __fastcall TForm1::AsaveExecute(TObject *Sender)

{ if (fname!="")

Memo2->Lines->SaveToFile(fname);

else

if (SaveDialog1->Execute()) {

fname=SaveDialog1->FileName;

Memo2->Lines->SaveToFile(fname);}

}

//---------------------------------------------------------------------------

// сохранение файла под другим именем

void __fastcall TForm1::ASaveAsExecute(TObject *Sender)

{

SaveDialog1->FileName=fname;

if (SaveDialog1->Execute()) {

fname=SaveDialog1->FileName;

Memo2->Lines->SaveToFile(fname);

}

}

//---------------------------------------------------------------------------

void __fastcall TForm1::AHelpExecute(TObject *Sender)

{

AboutBox->ShowModal();

}

//---------------------------------------------------------------------------

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]