Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 04.11.2009, 15:31   #1
Шульц
Форумчанин
 
Регистрация: 14.09.2008
Адрес: Ставрополь
Сообщений: 171
Репутация: 10

icq: 342236574
По умолчанию PageControl и запрет на переход между страницами

На форме есть PageControl и Memo. Когда в Мемо я что то ввожу, Page должна заблокироваться и не дать сменить страницу, но при этом Мемо остается активной и рабочей.
Как это можно реализовать?
__________________
Шипулин А. В.
Шульц вне форума   Ответить с цитированием
Старый 04.11.2009, 15:44   #2
raxp
Профессионал
 
Регистрация: 29.09.2009
Сообщений: 9,734
Репутация: 3006
По умолчанию

...обрабатывать смену страниц в pagecontrol. если событием для блокировки может быть клик на memo
Код:

procedure TForm1.Memo1Click(Sender: TObject);
begin
 pp:= true
end;

procedure TForm1.PageControl1Change(Sender: TObject);
begin
 if (pp)and(pagecontrol1.ActivePage<>tabsheet1) then
  pagecontrol1.ActivePage:= tabsheet1
end;

то снятием блокировки может быть таймер запускаемый в процедуре ввода значений в memo.

...смысл ясен?
__________________
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума   Ответить с цитированием
Старый 04.11.2009, 15:56   #3
Шульц
Форумчанин
 
Регистрация: 14.09.2008
Адрес: Ставрополь
Сообщений: 171
Репутация: 10

icq: 342236574
По умолчанию

Не совсем. Ведь если поставить блок на клик, то не обязательно туда вводить что-то, а просто кликнуть достаточно. А надо, что бы когда пользователь начнет менять данные, запретился переход на другую страницу, но на change не прокатит, так как мемо может заполнится и программно.

Про снятие совсем не понял.
__________________
Шипулин А. В.
Шульц вне форума   Ответить с цитированием
Старый 04.11.2009, 16:07   #4
raxp
Профессионал
 
Регистрация: 29.09.2009
Сообщений: 9,734
Репутация: 3006
По умолчанию

тогда выработайте для себя, что считать событием блокировки...

а memo.change покатит еще как, просто добавьте еще флаг проверки, т.е. если программное добавление идет, то пусть выставляется флаг-2 в true, а если ручное, то этот флаг не появиться, и блокировка пусть идет с проверкой этих двух флагов
Код:

procedure TForm1.Memo1Change(Sender: TObject);
begin
 if (not ppp) then pp:= true
end;
...
//ppp в true при программном добавлении

__________________
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 04.11.2009 в 16:10.
raxp вне форума   Ответить с цитированием
Старый 04.11.2009, 16:54   #5
mihali4
*
Профессионал
 
Регистрация: 22.11.2006
Адрес: Москва
Сообщений: 9,198
Репутация: 2661
По умолчанию

А я бы сделал проще:
Код:

procedure TForm1.Memo1KeyPress(Sender: TObject; var Key: Char);
begin
if key>Chr(0) then
noexit:=True;
end;

procedure TForm1.Memo1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if key=VK_ESCAPE then
noexit:=False; // Это к примеру. Нужно же как-то известить прогу, что редактирование завершено...
end;

procedure TForm1.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
AllowChange:=not noexit;
end;

noexit - глобальная.
mihali4 вне форума   Ответить с цитированием
Старый 05.11.2009, 00:13   #6
Шульц
Форумчанин
 
Регистрация: 14.09.2008
Адрес: Ставрополь
Сообщений: 171
Репутация: 10

icq: 342236574
По умолчанию

Спасибо, mihali4. Немного переделал под себя, но пример мне понравился
__________________
Шипулин А. В.
Шульц вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переход между формами! Lemo Общие вопросы Delphi 5 05.02.2009 16:50
Передача и параметров между страницами Killer_djon JavaScript, Ajax 3 04.02.2009 05:07
Переход между формами(( Lemo Общие вопросы Delphi 6 31.01.2009 23:06
Передача данных между страницами IQ-40 Безопасность, Шифрование 0 28.01.2008 12:32
передача переменных между страницами fufel JavaScript, Ajax 10 22.10.2007 17:04


01:50.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru