Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Карэн
19 / 19 / 0
Регистрация: 30.08.2010
Сообщений: 336
Записей в блоге: 1
1

Кнопка сохранения текста не становится активной

08.08.2011, 17:28. Просмотров 742. Ответов 6
Метки нет (Все метки)

Здравствуйте помогите разобраться..Есть текстовый редактор . на нем кнопки "загрузить ""сохранить" "очистить"копипаст условия "Давайте предположим, что пользователь набрал какой-то важный текст и сохранил его. На следующий день он снова загрузил ваш редактор, но по ошибке вместо кнопки "Загрузить" он нажал кнопку "Сохранить". Что произойдет? Никакого текста в данный момент компонент Memo не содержит. Если будет выполнена команда
Delphi
1
Memo1.Lines.SaveToFile('MyFile.txt');
то наш файл перезапишется – важный текст будет стерт, а взамен ничего не запишется, так как текста нет. Пользователь, совершив небольшую ошибку, потеряет свою работу.

Конечно, виноват пользователь – он нажал не ту кнопку. Но в большей степени здесь виноват программист, что не предусмотрел такого развития событий, и не сделал для своей программы элементарной защиты от ошибок пользователя. Исправим ошибку
Свойство Enabled отвечает за доступность компонентов. Это свойство имеет логический тип, и может быть либо True, либо False. Выделите кнопку с надписью "Сохранить", найдите ее свойство Enabled и вместо установленного по умолчанию значения True, выберите значение False. На форме не произошло видимых изменений, мы не сможем их увидеть в режиме разработки программы. Однако сохраните проект, скомпилируйте командой Run и посмотрите на результат – кнопка "Сохранить" видна на форме, но ее надпись выходит серым, неактивным цветом, а на кнопку невозможно нажать. Теперь у пользователя нет возможности нажать на эту кнопку, значит, он не совершит такой ошибки.
Но это только полдела, надо все-таки в процессе работы программы ему эту возможность вернуть, иначе как же он сможет сохранить текст?
делаем значит активной кнопку Выделите компонент Memo, в Инспекторе объектов перейдите на вкладку Events (События) и найдите там событие OnChange. Дважды щелкните по нему, чтобы сгенерировать процедуру – обработчик этого события. В этой процедуре запишем всего только одну строку:
Delphi
1
Button1.Enabled := True;
Таким образом, при изменении компонента Memo (пользователь изменил текст), мы делаем доступной кнопку "Сохранить". Теперь пользователь может сохранить свои изменения.

вопрос: почему когда я ввожу эти значения
Delphi
1
Button1.Enabled := True;
кнопка сохранить не активна.? разьясните пожалуйста..
0
Вложения
Тип файла: rar кнопки.rar (165.7 Кб, 10 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2011, 17:28
Ответы с готовыми решениями:

Как сделать? Если Caption копки на 1 форме равен 500, тогда неактивная кнопка на 2 форме становится активной.
В общем так, вроде всё просто, но что то застрял: на 1 форме есть кнопка на 2...

Создать две кнопки, при нажатии на одну вторая становится активной/неактивной
1)Создать две кнопки, и что бы при нажатии на одну вторая становилась...

При перемещении объекта в определённую зону на экране кнопка становится видимой
Здравствуйте , у меня появилась небольшая проблема , мне нужно сделать что бы...

Кнопка сохранения данных таблицы
Помогите, пожалуйста, создать кнопку, которая бы сохраняла данные из таблицы в...

Как сделать так чтобы при выделении текста в memo включилась кнопка
Привет всем: помогите пожалуйста как сделать так чтобы при выделении текста в...

6
Puporev
Модератор
55023 / 42314 / 29218
Регистрация: 18.05.2008
Сообщений: 99,993
08.08.2011, 17:34 2
Так введите что-то в Мемо...
1
Mawrat
12830 / 5738 / 1700
Регистрация: 19.09.2009
Сообщений: 8,807
08.08.2011, 17:37 3
Карлен, всё верно отрабатывает. Когда приложение только что запущено, кнопка Button1 неактивна. Как только что-то вводится в Мемо, тогда Button1 становится активной.
1
Карэн
19 / 19 / 0
Регистрация: 30.08.2010
Сообщений: 336
Записей в блоге: 1
08.08.2011, 17:47  [ТС] 4
Спасибо Вам ,а то я тут уж запутался совсем
0
alexan0308
61 / 45 / 4
Регистрация: 07.06.2011
Сообщений: 378
Записей в блоге: 2
09.08.2011, 00:40 5
А что нельзя что ли сделать проверку? Если мемо пустой, то проигнорировать нажатие кнопки записать.
Во вторых, если мемо не пустой, и файл тоже не пустой, запускать стандартный диалог - Файл уже существует. Перезаписать? Все данные в файле будут уничтожены...

и похоже будет на стандартный интерфейс... Зачем что то придумывать изголяться с кнопками...
0
DenNik
Непрофессионал
1803 / 1466 / 307
Регистрация: 26.07.2011
Сообщений: 8,063
09.08.2011, 09:35 6
А лучше насовать диалогов в стиле Майкрософт: "А вы уверены? Нет, вы точно уверены?"
0
Карэн
19 / 19 / 0
Регистрация: 30.08.2010
Сообщений: 336
Записей в блоге: 1
09.08.2011, 09:38  [ТС] 7
Цитата Сообщение от DenNik Посмотреть сообщение
А лучше насовать диалогов в стиле Майкрософт: "А вы уверены? Нет, вы точно уверены?"
типа защиты от дурака по максимуму
0
09.08.2011, 09:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2011, 09:38

кнопка становится активной после некоторых действий
Собственно суть такова: Форма загружается с деактивированными кнопками...

При выделеном тексте кнопка становится активной
помогите как задать условие если выделяеш текств в RichTextBox кнопка...

Не могу найти ошибку в программе(для просмотра картинок):кнопка НАЗАД не работает(не становится активной) Найдите ошибку.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru