|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.09.2010, 11:34 | #1 |
Пользователь
Регистрация: 04.03.2010
Сообщений: 25
|
Строка состояния в Delphi
Здравствуйте
Учусь на заочном отделении, вот пишу контрольную работу и тут возникла проблема. Мне нужно создать текстовый редактор в Delphi. Вот... Делать только начала, слава богу сама еле как разобралась и написала код для пункта "сохранить как", так что по истине считаю, что я не совсем пропащая Но возникла проблема, не могу сообразить. В задании написано следующее: 17. В событии OnChange компонента RichEdit1 напишите код, который выдает на вторую панель строки состояния сообщение «Текст изменен». Таким образом, при изменении хотя бы одного знака в тексте будет выдаваться это сообщение. Ничего другого мне не приходит в голову как написать это так: Код HTML:
procedure TEditor.RichEdit1Change(Sender: TObject); begin if RichEdit1.OnChange then StatusBar1.Panels[0].Text:= 'Текст изменен' else StatusBar1.Panels[0].Text:= ''; end; Код HTML:
procedure TEditor.RichEdit1Change(Sender: TObject); begin if RichEdit1.Modified then StatusBar1.Panels[0].Text:= 'Текст изменен' else StatusBar1.Panels[0].Text:= ''; end; Помогите пожалуйста, разъясните ошибку |
13.09.2010, 11:57 | #2 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
В СтатусБар можно сделать несколько панелей... Вам нужно выводить сообщение во вторую панель, т.е. StatusBar1.Panels[1].Text:='Изменен...'
Перемешивай дело с бездельем и не сойдешь с ума...
|
13.09.2010, 12:09 | #3 |
Пользователь
Регистрация: 04.03.2010
Сообщений: 25
|
У меня есть панель 1 - в ней я пишу что текст сохранен (после сохранения), и как раз думала, что в панельке, которая слева, будет текст изменен.
То есть как я поняла в панель 0 не получится записать? |
13.09.2010, 12:12 | #4 |
Форумчанин
Регистрация: 04.04.2009
Сообщений: 438
|
Дело в том, панели эти надо создать, тогда не будет ошибки.
На статусбаре двойной клик, появится окно редактора панелей. Или в Object Inspector'е нажать на кнопку с тремя точками в свойстве Panels. В редакторе надо создать парочку (желтая кнопка, нажать два раза или столько сколько надо панелей). После этого можно из программы обращаться к панелям без ошибок. Последний раз редактировалось Скандербег; 13.09.2010 в 12:14. |
13.09.2010, 12:14 | #5 |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
Допустим, статусбар имеет 3-и панели... Тогда панель 1-я будет иметь индекс 0 (StatusBar1.Panels[0].text:=), панель 2-я будет иметь индекс 1 (StatusBar1.Panels[1].Text:=) и т.д. Так что, разберитесь что и в какую панель Вам нужно выводить и, соответственно, с каким индексом...
Перемешивай дело с бездельем и не сойдешь с ума...
|
13.09.2010, 12:16 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Можешь. Установи StatusBar1.SimplePanel:=true;
И пиши Код:
I'm learning to live...
|
13.09.2010, 12:17 | #7 |
Пользователь
Регистрация: 04.03.2010
Сообщений: 25
|
У меня 2 панельки, StatusBar1.Panels[0] (в которую я хочу записать "Текст изменен") и StatusBar1.Panels[1] (тут у меня пишет "Текст сохранен" при изменении)
И между прочим я не совсем уж)))) так что обе панели у меня созданы, в этом не может быть ошибки А куда это надо написать? Последний раз редактировалось Stilet; 13.09.2010 в 12:24. |
13.09.2010, 12:20 | #8 | |
А может и не...
Участник клуба
Регистрация: 27.03.2010
Сообщений: 1,269
|
Цитата:
Лучше этого не делай, иначе прощайте Ваши две (и более) панелей...
Перемешивай дело с бездельем и не сойдешь с ума...
Последний раз редактировалось Stilet; 13.09.2010 в 12:24. |
|
13.09.2010, 12:25 | #9 |
Пользователь
Регистрация: 04.03.2010
Сообщений: 25
|
Забыла сказать, этот код работает, но не правильно:
Код HTML:
procedure TEditor.RichEdit1Change(Sender: TObject); begin if RichEdit1.Modified then StatusBar1.Panels[0].Text:= 'Текст изменен' else StatusBar1.Panels[0].Text:= ''; end; |
13.09.2010, 12:26 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
JavaScript.Бегущая строка в строке состояния | Zempery | JavaScript, Ajax | 1 | 01.12.2009 19:15 |
Строка состояния, подсказки | Квио | Общие вопросы Delphi | 7 | 29.09.2009 19:34 |
Строка состояния и панель | SoAndSo | Microsoft Office Word | 6 | 14.11.2008 15:59 |