Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 03:57   #1
masluk
 
Регистрация: 25.10.2012
Сообщений: 3
По умолчанию Как Edit соединить с Мемо

Вот само задание: Создать на экране форму, поместить на неё компоненты Мемо и Edit. С помощью диалоговых компонентов загрузить из текстового файла текст в Memo, установить его шрифт и цвет. Удалить из него (автоматически, по нажатию на кнопку) все строки, начинающиеся буквой, введённой в Edit. Сохранить получившийся текст в новый файл.

Код:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "var7.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
OpenDialog1->Filter="Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*";   //Задаём фмльтр для ращирений файлов, показываемых в диалоговых окнах
SaveDialog1->Filter="Текстовые файлы (*.txt)|*.txt|Все файлы (*.*)|*.*";   //
SaveDialog1->DefaultExt="txt";
Memo1->Lines->Clear();
Memo1->Font->Size=12;
Memo1->Font->Color=clBlue;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
char i1, i2;

i1=OpenDialog1->Execute();  //Открываем диалоговое окно чтения файла
i2=FileExists(OpenDialog1->FileName); //  Если файл существует

if (i1 && i2)
        {
         Memo1->Lines->LoadFromFile(OpenDialog1->FileName);  //Загружаем из него текст
         };
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 char i1;
i1=SaveDialog1->Execute();   //Открываем диалоговое окно записи в файл
        if (i1)
        {
        Memo1->Lines->SaveToFile(SaveDialog1->FileName);  //Записываем текст в файл
        };
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)
{
 char i1;
i1=FontDialog1->Execute();  //Изменяем шрифт и цвет текста
  if (i1)   {
  Memo1->Font=FontDialog1->Font;
  };
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
int i;


         for(i=0;i<Memo1->Lines->Count;i++)    //Перебираем все строки редактора
         {
                if (Memo1->Lines->Strings[i]!="")
                {
                  if (Memo1->Lines->Strings[i][1]=Edit1->Text) //Если первая буква в строке равна букве, введенной в Edit
                  {
                   Memo1->Lines->Delete(i);         //  удаляем строку
                   i--;
                  };
                };
          };

}
Не знаю как сделать, чтобы вводили букву в Edit1, нажимали кнопку и в Memo удалялись строки, которые начинаются с этой буквы. Всё остальное работает.




___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 09.11.2012 в 09:10.
masluk вне форума Ответить с цитированием
Старый 09.11.2012, 09:35   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вижу только два явный косяка:
1) нужно цикл делать от конца мемо к началу (или не пользоваться циклом for )!
2) сравнение в C записывают ДВОЙНЫМ знаком равенства!

примерно так:
Код:
for(i=i<Memo1->Lines->Count-1;0;i--)    //Перебираем все строки редактора
         {
                if (Memo1->Lines->Strings[i]!="")
                {
                  if (Memo1->Lines->Strings[i][1]==Edit1->Text[1]) //Если первая буква в строке равна букве, введенной в Edit
                  {
                   Memo1->Lines->Delete(i);         //  удаляем строку
                  };
                };
          };
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как из простого мемо записать в поле БД Access в поле тоже типа мемо с сохранением всех абзацев пробелов Speeker БД в Delphi 2 28.11.2011 16:22
как соединить?? stupid Помощь студентам 0 17.03.2011 12:52
Edit в Мемо Joystik Общие вопросы Delphi 5 01.05.2010 01:02
Как скопировать текст из мемо одной формы в мемо другой CraZZy RabbIt Общие вопросы Delphi 4 27.02.2009 00:01
Как соединить? Artem25 Свободное общение 1 22.09.2008 09:03