Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 53

Из Memo1 в Edit

03.04.2012, 21:00. Показов 1557. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
В моей программе необходимо чтобы из текстового файла данные загружались в Memo, а оттуда по Edit элементам. Если использую просто загрузку из текстового файла в Memo то проблем нет, загружается все без проблем.
C++
1
2
3
4
5
    if (OpenDialog1->Execute())
        {
        file_name=OpenDialog1->FileName;
        Memo1->Lines->LoadFromFile(file_name);
        }
А вот если я делаю в коде сразу после загрузки распределение по Edit, то в Memo вставляеся только какие то обрывки текстового файла.
C++
1
2
3
4
5
6
7
8
    if (OpenDialog1->Execute())
        {
        file_name=OpenDialog1->FileName;
        Memo1->Lines->LoadFromFile(file_name);
        Edit_PHG->Text = Memo1->Lines->Strings[1];
        Edit_well_number->Text = Memo1->Lines->Strings[2];
        Edit_date->Text = Memo1->Lines->Strings[3];
        }
Подскажите в чем может быть проблема?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.04.2012, 21:00
Ответы с готовыми решениями:

Memo1
Как сделать что б при нажатии Button1 в Memo1 загрузился текст из 1.txt

Ограничение ввода русских букв в Edit. Всплывающая подсказка над Edit'ом
Добрый день, обращаюсь за помощью по следующим двум вопросам. 1) В Edit нужно чтобы вводились только буквы англ. и рус. void __fastcall...

Добавление с Edit в Items Combox и после этого в Edit на другую форму
Доброго времени суток. Вопрос такой. В общем, надо помочь с такой штукой. При вводе текста в Edit необходимо при нажатии кнопки перенести в...

11
 Аватар для Samrisbe
1365 / 732 / 67
Регистрация: 28.01.2011
Сообщений: 2,069
03.04.2012, 21:05
попробуй вот это:
C++
1
2
3
Edit_PHG->Text = Memo1->Lines->Strings[1];
Edit_well_number->Text = Memo1->Lines->Strings[2];
Edit_date->Text = Memo1->Lines->Strings[3];
прописать например в событии Button1Click и сошлись на него в диалоге:
C++
1
2
3
4
5
if (OpenDialog1->Execute())
        {
        file_name=OpenDialog1->FileName;
        Memo1->Lines->LoadFromFile(file_name);
        Button1Click(NULL);}
0
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 53
03.04.2012, 23:26  [ТС]
не помогла, та же ситуация, загружается только часть файла в мемо
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.04.2012, 23:31
C++
1
2
3
4
5
6
7
8
if (OpenDialog1->Execute()) {
  file_name=OpenDialog1->FileName;
  Memo1->Lines->LoadFromFile(file_name);
}
// загрузка в эдиты будет после закрытия OpenDialog1
Edit_PHG->Text = Memo1->Lines->Strings[1]; // по ходу, нумерация в списках начинается с 0
Edit_well_number->Text = Memo1->Lines->Strings[2];
Edit_date->Text = Memo1->Lines->Strings[3];
1
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 53
03.04.2012, 23:53  [ТС]
разобрался в чем была беда) у меня на едитах стояла обработка onChange, т.е. после копирования из мемо, едит изменялся и запускалась функция копирования едитов в мемо, а так как большинство из них были пусты так и возникла данная проблема.
подскажите каким образом возможно временное отключение обработки onChange в каждом или во всех эдитах.
предполагаю это что то типа
C++
1
Edit_date->onChange = false;
но компилятор не пропускает
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
03.04.2012, 23:58
maxkod, копируйте из эдитов при условии, что они не пусты:
C++
1
if (Edit_date->text!="") { /*код копирования*/ }
Хотя я не понимаю смысла этого обратного копирования, однако.
0
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 53
04.04.2012, 10:20  [ТС]
просто я таким образом, исходя из моих знаний билдера, сделал процес сохранения и загрузки информации из едитов и в них соответственно.
а возможно ли отключение или изменения процедуры при событии onChange из кода, это самый простой путь решения данной проблемы.
C++
1
if (Edit_date->text!="") { /*код копирования*/ }
данное решение помогает, но при копировании из мемо в эдит все равно событие onChange запускает процедуру копирования обратно, по факту это на отображении информации не влияет но все же хотелось бы без двойного копирвоания
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.04.2012, 11:16
Из ваших скудных объяснений сложно понять, зачем это делать в OnChange, хотя, если звезды зажигают, значит, это кому-нибудь нужно . А может, в данном случае, не нужно?
Кодамалакарочэ.
1
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 53
04.04.2012, 11:48  [ТС]
Цитата Сообщение от LK Посмотреть сообщение
Из ваших скудных объяснений сложно понять, зачем это делать в OnChange, хотя, если звезды зажигают, значит, это кому-нибудь нужно . А может, в данном случае, не нужно?
Кодамалакарочэ.
Я это сделал исходя из своих скудных познаний builder. А каким способом еще возможно сделать сохранение едитов? Необходимо так же чтобы программа сама понимала что они изменены и их необходимо сохранить.
У меня это реализовано так:
1. если эдит менялся (процедура onChange), то изменения вносятся в мемо, и идет сообщение при закритии что происодили изменения и предлагает сохранить их(сохранение мемо в текстовой файл).
2. при открытии файла(копирование из текстового файла в мемо) с мемо все распихивается по эдитам.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.04.2012, 12:10
Где-то в коде вы менятете текст Эдит, где - мне не ведомо, предположим, при нажатии кнопки:
C++
1
2
3
4
Edit-Text = "lalalalala";
Memo->Text = Memo->Text+Edit-Text;
// или
Memo->Text += Edit->Text;
0
0 / 0 / 0
Регистрация: 27.03.2012
Сообщений: 53
04.04.2012, 12:33  [ТС]
у меня порядка 20 эдитов + 1 стринггрид, во все элементы текст вбивает вручную
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
04.04.2012, 12:39
Дык, оно в OnChange при каждой буковке дергается. Предусмотрите перенос текста из эдитов в мему при нажатии клавиши энтер или специальной кнопки "Записать" на форме.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.04.2012, 12:39
Помогаю со студенческими работами здесь

Перенос из одного Edit в другой Edit на разных формах (ошибка)
Доброго всем дня. Вопрос такой. Хочу передать результат со второго Едита на второй форме, на 7 сЕдит 7 формы. в общем пробовал так: В...

Считать с Edit текст, убрать последний символ из строки и снова записать в Edit
Всем доброго времени суток. У меня тут возник вопрос, как можно считать с Edit текст, а потом убрать последний символ из этой строки и...

Запись в файл из полей Edit и проверка Edit на пустоту
TForm1 *Form1; int Ext=0; int i; //--------------------------------------------------------------------------- __fastcall...

Memo1 и .txt
Здравствуйте! Во такая проблемка возникла. На форме 1, у меня лежит кнопка, Баттон1. Я создал Form2, на неё кинул Memo1, отдельно...

Вывести в 11-ый Edit минимальное из значений предыдущих 10-ти Edit-ов
Всем привет. У меня такая задача: есть 10 едитов(Edit1-Edit10) я ввожу в них числа и должно в Edit11 вывести минимальное из чисел. Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru