Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Mesken
0 / 0 / 1
Регистрация: 14.02.2011
Сообщений: 153
1

Очистка компонентов по событию

14.05.2012, 12:52. Просмотров 507. Ответов 7
Метки нет (Все метки)

Здравствуйте все!

Мне нужна помощь в реализации некоторых действий, если это возможно:
1. Есть edit, там прописан текст поиск. Как сделать так, чтоб при щелчке мышкой по edit'у текст выделялся или удалялся (очищать edit я знаю, а как при щелчке мышки не в курсе);
2. На форме есть PageControl, две страницы и на каждой из них DBGird, а также общая Query. Как сделать, чтоб при переключении на 2-ю DBGird2 очищался, а при переключении на 1-ю DBGird1 показывал базу данных (тут можно использовать активацию Query, но как и в предыдущем примере не знаю как обратиться);
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 12:52
Ответы с готовыми решениями:

Очистка Panel от компонентов
Суть проги в том, что принажатии на кнопку создаются на панели компоненты, при...

Очистка всех компонентов формы сразу
проблема такая перехожу с основной формы на дочернюю заполняю и возвращаюсь...

Очистка графика + очистка формы
Есть две программы: Прямо на форме (через Canvas) рисую правильный...

Как по событию OnHelp запустить помощь?
Кто может подскажите по событию формы OnHelp, пытаюсь к проекту подключить...

Как назначить событию свой собственный обработчик?
Использую компонент TAdvStringGrid (из набора компонентов TMS). У него есть...

7
Flyer
wtf!?
748 / 279 / 24
Регистрация: 21.05.2010
Сообщений: 732
14.05.2012, 13:01 2
C++
1
2
3
4
5
void __fastcall TForm1::Edit1Click(TObject *Sender)
{
Edit1->SelStart=0;
Edit1->SelLength=Edit1->Text.Length();
}
1
The_Immortal
1560 / 496 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.05.2012, 13:07 3
Flyer,

C++
1
Edit1->SelectAll();
Не проще?

Добавлено через 3 минуты
Mesken, по поводу пункта №2 как вариант:
C++
1
2
DBGrid2->DataSource->Enabled=false;
DBGrid1->DataSource->Enabled=true;
Учитывая, что у них один и тот же DataSet.
2
nick42
Практикантроп
4355 / 2357 / 417
Регистрация: 23.09.2011
Сообщений: 5,023
14.05.2012, 13:18 4
от чего должен "очищаться" DBGrid2 ? Я считаю, что правильнее манипулировать именно датасэтами.
0
Mesken
0 / 0 / 1
Регистрация: 14.02.2011
Сообщений: 153
14.05.2012, 17:25  [ТС] 5
Flyer и The_Immortal, спасибо что откликнулись.

Flyer, не обижайтесь, но код The_Immortal действительно выглядит проще, хотя действия одинаковы.

The_Immortal, можно по подробнее по пункту 2, т.е. куда я эти коды должен вставить чтоб работало.

nick42, в DBGird1 выводится вся база данных (запрос изначально вшит Query1 и активен), в DBGird2 выводится результат поиска по базе данных. Поэтому при переключении на страницу 2 с DBGird2, должен очистится от предыдущего запроса всей базы и показать пустую DBGird2. И наоборот, при переключении на страницу 1 с DBGird1, должен показать всю базу данных, а если на предыдущей странице проводился поиск, то еще и очистится.
Оба DBGird'а работают с одним Query1.

Вот так по идее должно работать.
0
The_Immortal
1560 / 496 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.05.2012, 17:38 6
Mesken, эм... А можно кое-что уточнить? Чисто в семантическом плане:

Цитата Сообщение от Mesken Посмотреть сообщение
в DBGird2 выводится результат поиска по базе данных
Цитата Сообщение от Mesken Посмотреть сообщение
показать пустую DBGird2
Это как? Результат поиска неважен?

Если просто хотите, чтобы DBGrid2 "молчал" при переходе на вторую страницу PageControl'а, напишите на событие перехода на страницу:

C++
1
DBGrid2->DataSource->DataSet->Active=false;
1
nick42
Практикантроп
4355 / 2357 / 417
Регистрация: 23.09.2011
Сообщений: 5,023
14.05.2012, 17:42 7
Я обычно DBGrid ы устраиваю динамически подключенными (если это понятно) к таблице базы или к запросу. Поэтому и "очистить" их получается изменением источника данных. Так, в Вашем случае на первой вкладке я бы сделал источником таблицу, а на второй (выборочно...) - запрос. Если надо таблицу очистить - или очищаю строку запроса, или делаю его неактивным, или DataSource NULL .. как-то так практически. Стирать с DBGrid, связанной с базой, информацию мне представляется не логичным.
0
Mesken
0 / 0 / 1
Регистрация: 14.02.2011
Сообщений: 153
14.05.2012, 18:31  [ТС] 8
Всем спасибо, я разобрался.

The_Immortal,
Результат поиска неважен?
Теперь важен, после того как я проверил работу программы. Выглядит не красиво, когда производишь поиск, переключаешься на другую страницу, затем обратно возвращаешься, а результата поиска нет.
Но с этим я сам могу справиться, по крайне мере я знаю что надо сделать.
Спасибо за код.

nick42, это я и имел ввиду.

Все, проблемы решены. Еще раз всем спасибо.
0
14.05.2012, 18:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.05.2012, 18:31

Нажатие на пункт PopupMenu MenuItem по событию MenuItemClick правой или левой кнопкой мыши
Собственно никак не получается. Надо, чтобы по левой работал код пункта, а по...

Очистка timeout по событию.
Вот у меня есть блок div , когда с него уводится мышка, то через 10 сек этот...

Перестроение компонентов в форме по событию
Приветствую, друзья. Собственно, вот что я имею в виду: нужна форма, в...


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

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

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